如何提高sklearn模型的准确性?

我是机器学习的新手,我有一个自定义的数据集,包含法院案件。数据集的列包括指控(字符串)、先前案件(整数)和保释金额(整数)。我使用指控和先前案件作为特征,而保释金额作为我的标签。我希望能够根据指控和先前案件预测保释金额。我使用MLPClassifier作为我的模型,并尝试了几种其他模型。我的准确率只有大约45%。如何提高它?我是否只需要尝试不同的模型,如KNN?我转换数据的方式是否有问题?反复试错让我来到了这里。

import pandas as pdfrom sklearn.model_selection import train_test_splitfrom sklearn.neural_network import MLPClassifierfrom sklearn.preprocessing import LabelEncoderfrom sklearn.metrics import accuracy_score# 导入CSVfinal_df = pd.read_csv('merge.csv')# 删除保释金额超过10,000美元的行outlier = final_df[final_df.bond >= 10000].indexfinal_df.drop(outlier, inplace=True)# 从CSV中获取特征X = final_df[['prior_cases', 'charges']].values# 从CSV中获取标签y = final_df[['bond']].valuesle = LabelEncoder()# 转换X数据for i in range(len(X[0])):    X[:, i] = le.fit_transform(X[:, i])# 转换y数据for i in range(len(y[0])):    y[:, i] = le.fit_transform(y[:, i])# 分割数据,80%用于训练X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, train_size=0.8)# 定义模型以训练数据model = MLPClassifier(activation='relu', solver='adam', hidden_layer_sizes=(100,), random_state=1, max_iter=500)# 训练模型model.fit(X_train, y_train)# 给出预测标签predictions = model.predict(X_test)# 模型的准确率acc = accuracy_score(predictions, y_test)print('实际值:----', le.inverse_transform(y_test[100]))print('预测值:', le.inverse_transform(predictions[100].reshape(-1,1)))print('准确率: ', acc)

回答:

导致低准确率的原因有很多。我在下面列出了一些常见的原因。

数据

  1. 您使用的数据可能不适合您选择的模型。
  2. 您的数据可能不够干净,无法使模型达到高准确率。
  3. 您可能需要使用一些特征工程技术来探索数据的不同方面。这些技术也被称为试错法,您可以创建不同的特征并使用模型来评估它们。

模型

  1. 您的模型可能不适合您使用的数据类型。例如,有些模型更喜欢离散值而不是连续值,反之亦然。
  2. 您选择的超参数可能不是最佳的。这需要调参过程,您需要尝试一组不同的参数在您的模型中。

评估

  1. 假设您的数据很好,您的模型也适合您的数据,但您使用的评估指标可能不是评估模型的正确指标。
  2. 如果您的模型是为分类问题构建的,您可能需要再次检查用于测试的数据是否干净。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注