首页
学习
活动
专区
圈层
工具
发布

MLP分类
EN

Stack Overflow用户
提问于 2017-04-08 13:30:11
回答 1查看 886关注 0票数 2

我是机器学习的新手,我正在开发一个python应用程序,该应用程序使用数据集对扑克手进行分类,我将发布代码片段。看来效果不太好。我得到了以下错误:

代码语言:javascript
复制
File "C:Testing.py", line 32, in <module>
    print(classification_report(training_data, predictions))
  File "C:Anaconda3\lib\site-packages\sklearn\metrics\classification.py", line 1391, in classification_report
    labels = unique_labels(y_true, y_pred)
  File "C:\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py", line 84, in unique_labels
    raise ValueError("Mix type of y not allowed, got types %s" % ys_types)
ValueError: Mix type of y not allowed, got types {'multiclass-multioutput', 'multiclass'}

下面是我创建的代码:

代码语言:javascript
复制
import pandas as pnd
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import classification_report,confusion_matrix

training_data = pnd.read_csv("train.csv")
print(training_data)
training_data['id'] = range(1, len(training_data) + 1)  # For 1-base index
print(training_data)

test_data = pnd.read_csv("test.csv")
result = pnd.DataFrame(test_data['id'])
print(result)
test_data = test_data.drop(['id'], axis=1)

training_datafile = training_data
labels = training_datafile['hand']
features = training_datafile.drop(['id', 'hand'], axis=1)
scaler = StandardScaler()
# Fit only to the training data
scaler.fit(training_datafile)
X_train = scaler.transform(training_datafile)
X_test = scaler.transform(training_datafile)
mlp = MLPClassifier(hidden_layer_sizes=(100, 100, 100))
mlp.fit(features, labels)
predictions = mlp.predict(test_data)
len(mlp.coefs_)
len(mlp.coefs_[0])
len(mlp.intercepts_[0])
result.insert(1, 'hand', predictions)
result.to_csv("./ANNTEST.csv", index=False)
print(classification_report(training_data, predictions))

下面是分别使用培训数据和测试数据的数据集的片段:

试验数据

这个程序基本上是有效的,我正设法预测扑克手,如下所示:

我想知道的是显示某种精度百分比,或者像classification_report这样的函数。引导我朝着正确的方向前进会有很大的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-08 15:16:05

我认为您在这里出现了一个错误,因为您使用的classification_report不正确。让我们来看看文档

代码语言:javascript
复制
classification_report(y_true, y_pred, ...)

y_true : 1d array-like, or label indicator array / sparse matrix    
         Ground truth (correct) target values.

y_pred : 1d array-like, or label indicator array / sparse matrix
         Estimated targets as returned by a classifier.

training_data作为第一个参数传递(它不是一维数组)。相反,你需要通过你的测试数据的真正的手,你想要比较你的预测的手,你的训练分类器。因此,这可能会奏效:

代码语言:javascript
复制
print(classification_report(test_data["hand"], predictions))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43294745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档