【发布时间】:2021-09-08 07:29:09
【问题描述】:
我只是想为我的整个数据集获取混淆矩阵。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn import metrics
from neupy import algorithms
df = pd.read_csv('my_data.csv', header=None)
df = df.rename(columns={0: 'season_at_test',
1: 'age',
2: 'child',
3: 'trauma',
4: 'surgery',
5: 'fever',
6: 'alcohol',
7: 'smoking','
})
df['smoking'] = df['smoking'].map({'N': 1, 'O':0})
data = df.iloc[:, :-1]
target = df['diagnosis']
X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=303)
pnn = algorithms.PNN(std=10, verbose=False)
pnn.train(X_train, y_train)
y_pred = pnn.predict(X_test)
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
pnn = algorithms.PNN(std=10, verbose=False)
pnn.train(X_train, y_train)
y_pred = pnn.predict(X_test)
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))
metrics.confusion_matrix(y_test, y_pred)
它给了我;
Accuracy: 0.7
array([[ 0, 1],
[ 5, 14]], dtype=int64)
这个输出。我还需要运行 2 次才能工作,它在第一次运行时给了我一个错误。 我的混淆矩阵应该类似于下面的结果,因为我有 100 个样本而不是 20 个。
[ 58, 30]
[ 5, 7]
如果我尝试添加类似的东西
y_pred = pnn.predict(X_test)
x_pred = pnn.predict(data)
metrics.confusion_matrix(x_pred, y_test)
它给了我“ValueError:发现样本数量不一致的输入变量:[100, 20]”
我怎样才能使这项工作适用于我的所有数据?我想要我所有 100 个样本的混淆矩阵。
【问题讨论】:
标签: python python-3.x scikit-learn neural-network confusion-matrix