MLP分类拟合

我刚开始学习机器学习,正在开发一个Python应用程序,用于使用数据集对扑克手牌进行分类,我将发布一些数据片段。目前效果不太好,并且我遇到了以下错误:

Traceback (most recent call last):  File "C:\Users\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2881, in run_code    exec(code_obj, self.user_global_ns, self.user_ns)  File "<ipython-input-62-0d21cd839ce4>", line 1, in <module>    mlp.fit(X_test, y_train.values.reshape(len(y_train), 1))  File "C:\Users\Anaconda3\lib\site-packages\sklearn\neural_network\multilayer_perceptron.py", line 618, in fit    return self._fit(X, y, incremental=False)  File "C:\Users\Anaconda3\lib\site-packages\sklearn\neural_network\multilayer_perceptron.py", line 330, in _fit    X, y = self._validate_input(X, y, incremental)  File "C:\Users\Anaconda3\lib\site-packages\sklearn\neural_network\multilayer_perceptron.py", line 902, in _validate_input    multi_output=True)  File "C:\Users\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 531, in check_X_y    check_consistent_length(X, y)  File "C:\Users\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 181, in check_consistent_length    " samples: %r" % [int(l) for l in lengths])ValueError: Found input variables with inconsistent numbers of samples: [6253, 18757]

这是我尝试编写的代码:

import pandas as pndfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.neural_network import MLPClassifierfrom sklearn.metrics import classification_report, confusion_matrixtraining_data = pnd.read_csv("train.csv")training_data['id'] = range(1, len(training_data) + 1)  # For 1-base indextraining_datafile = training_datatarget = training_datafile['hand']data = training_datafile.drop(['id', 'hand'], axis=1)X = datay = targetX_train, X_test, y_train, y_test = train_test_split(X, y)X_train.shapey_train.shapescaler = StandardScaler()scaler.fit(X_train)X_train = scaler.transform(X_train)X_test = scaler.transform(X_test)mlp = MLPClassifier(hidden_layer_sizes=(100, 100, 100))mlp.fit(X_test, y_train.values.reshape(len(y_train), 1))predictions = mlp.predict(X_test)len(mlp.coefs_)len(mlp.coefs_[0])len(mlp.intercepts_[0])print(confusion_matrix(y_test, predictions))print(classification_report(y_test, predictions))

X_train的形状是(18757, 10),y_train的形状是(18757,)我尝试使用之前的帖子中的方法

y_train.values.reshape(len(y_train), 1)

但我仍然得到相同的错误。一些指导将对我非常有帮助,因为我不确定形状哪里出了问题。

数据片段:enter image description here


回答:

您使用的是X_test而不是X_train进行拟合。

mlp.fit(X_train, y_train.values.reshape(len(y_train), 1))

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

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