我正在尝试一些机器学习练习,因为我还是新手。我发现一个很好的问题,这是一个回合分类扑克手,我设法创建以下代码,它工作正常,我设法预测测试数据的手。
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)
现在我的问题是我该怎么做才能检查这个预测的准确程度? 以下是我使用的数据集的片段。
非常感谢帮助和指导!
答案 0 :(得分:1)
只使用正确预测结果的百分比。 python中提供了混淆矩阵和表函数。
假设您的测试结果如下(
)
实际预测
A A
A B
B B
B A
B B
所以我们在这里看到两个值不匹配,因此精度为60%