【发布时间】:2017-09-05 09:40:40
【问题描述】:
我正在尝试一些机器学习练习来练习,因为我还是新手。我发现了一个很好的问题开始,这是一个分类扑克手的回合,我设法创建了以下代码,它运行良好我设法预测了测试数据手。
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(".idea/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(".idea/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(".idea/ANNTEST.csv", index=False)
现在我的问题是如何检查这个预测的准确性? 以下是我使用的数据集的sn-ps。
我们将不胜感激帮助和指导!
【问题讨论】:
-
您可以简单地使用“accuracy_score(original_result, predict_result)”。请参阅文档:scikit-learn.org/stable/modules/model_evaluation.html
-
是的,我已经尝试过了,但出现以下错误:raise ValueError("{0} is not supported".format(y_type)) ValueError: Continuous-multioutput is not supported
-
hand中可能存在哪些值?如果它是 0 到某个数字之间的连续间隔,那么您可能应该尝试回归,而不是分类。在这种情况下,请尝试mean_squared_error()。 -
基本上我有从0-9来分类扑克手牌
-
你能在这里发布
predictions的输出吗?
标签: python pandas machine-learning scikit-learn neural-network