2017-04-05 172 views
1

我是机器学习的新手,我正在研究一个使用数据集分类扑克手的python应用程序,我将发布片段。它似乎不工作。它无法正确分类。而且我收到以下错误使用MLP的神经网络分类器

", line 298, in fit 
    raise ValueError("Multioutput target data is not supported with " 
ValueError: Multioutput target data is not supported with label binarization 

下面是我的代码:

import pandas as pnd 
import numpy as np 
from sklearn.model_selection import train_test_split 
from sklearn.preprocessing import StandardScaler 
from sklearn.neural_network import MLPClassifier 
from sklearn.metrics import classification_report 
training = pnd.read_csv(".idea/train.csv") 
training.keys() 
training.shape 
X = np.array(training) 
y = np.array(training) 
X_train, X_test, y_train, y_test = train_test_split(X, y) 
scaler = StandardScaler() 
# Fit only to the training data 
scaler.fit(X_train) 
X_train = scaler.transform(X_train) 
X_test = scaler.transform(X_test) 
mlp = MLPClassifier(hidden_layer_sizes=(30, 30, 30, 30, 30, 30, 30, 30, 30, 30)) 
mlp.fit(X_train, y_train) 
predictions = mlp.predict(X_test) 
print(classification_report(y_test, predictions)) 
len(mlp.coefs_) 
len(mlp.coefs_[0]) 
len(mlp.intercepts_[0]) 

以下是该数据集的样本,我使用: Image here

这里是一个数据集应将描述: https://archive.ics.uci.edu/ml/datasets/Poker+Hand

有什么错吗?如果我以正确的方式做事,我希望有人能指导我。

+0

会发生什么(X_train)到scaler.fit(X_train,y_train)? – BernardoGO

+0

mlp.fit(X_train,y_train)raise ValueError(“多输出目标数据不受支持” ValueError:多输出目标数据不支持标签二值化 仍然收到相同的错误 – Ozzman1893

回答

0

只是为了让它在这里作为答案。

问题是scalet.fit必须包含Y_train

变化:

scaler.fit(X_train) 

到:如果你改变scaler.fit

scaler.fit(X_train, y_train)