MLP预测准确性

时间:2017-04-10 11:07:49

标签: python pandas machine-learning scikit-learn neural-network

我正在尝试一些机器学习练习,因为我还是新手。我发现一个很好的问题,这是一个回合分类扑克手,我设法创建以下代码,它工作正常,我设法预测测试数据的手。

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) 

现在我的问题是我该怎么做才能检查这个预测的准确程度? 以下是我使用的数据集的片段。

Train data

Prediction Results

非常感谢帮助和指导!

1 个答案:

答案 0 :(得分:1)

只使用正确预测结果的百分比。 python中提供了混淆矩阵和表函数。

假设您的测试结果如下(
实际预测
A A
A B
B B
B A
B B

所以我们在这里看到两个值不匹配,因此精度为60%