【问题标题】:Confusion matrix not giving the whole data for Neural Network sklearn Python混淆矩阵没有给出神经网络 sklearn Python 的全部数据
【发布时间】: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


    【解决方案1】:

    当您对有 100 个条目的 data 执行 train_test_split 时,您会将数据分成两部分(训练和测试)。 20% 进入test_size=0.2 定义的测试集,所以y_test 将有20% 的data 等于20 个条目。这是预期的行为。

    如果你想获得整个数据集的混淆矩阵,你应该这样做:

    y_pred = pnn.predict(data)
    metrics.confusion_matrix(target, y_pred)
    

    推荐这种方法,因为它不能代表模型在未知数据上的真实性能。

    【讨论】:

      猜你喜欢
      • 2015-06-12
      • 2015-05-01
      • 1970-01-01
      • 2013-04-14
      • 2019-10-15
      • 2015-12-10
      • 2020-07-26
      • 2011-02-25
      • 2021-09-29
      相关资源
      最近更新 更多