Python 混淆矩阵错误';数据帧'&引用;对象不可调用";

Python 混淆矩阵错误';数据帧'&引用;对象不可调用";,python,compiler-errors,confusion-matrix,Python,Compiler Errors,Confusion Matrix,我做错了什么?我将两个变量都设置为list。还尝试了np.array y = list(y_test.values) yhat = list(predictions) print(y) print(yhat) confusion_matrix = pd.DataFrame(confusion_matrix(y, yhat), columns=["Predicted False", "Predicted True"], index=["Actual False", "Actual True"]

我做错了什么?我将两个变量都设置为list。还尝试了
np.array

y = list(y_test.values)
yhat = list(predictions)

print(y)
print(yhat)

confusion_matrix = pd.DataFrame(confusion_matrix(y, yhat), columns=["Predicted False", "Predicted True"], index=["Actual False", "Actual True"])
display(confusion_matrix)
输出:

[0,0,0,0,0,0,0,0,0,0,0,0,0,1,…,0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ..., 0]
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
45号印刷品(yhat)
46
--->47混淆矩阵=pd.DataFrame(混淆矩阵(y,yhat),列=[“预测假”,“预测真”],索引=[“实际假”,“实际真”])
48显示器(混淆矩阵)
49
TypeError:“DataFrame”对象不可调用

不确定这里发生了什么…

你是在笔记本上做的吗?如果是这样,那么当您第一次调用数据帧时,
混乱矩阵
方法可能已经被数据帧遮挡了。尝试更改变量名并重新启动内核。

您是在笔记本中这样做的吗?如果是这样,那么当您第一次调用数据帧时,
混乱矩阵
方法可能已经被数据帧遮挡了。尝试更改变量名并重新启动内核

from sklearn.metrics import confusion_matrix
y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]
当我运行
混乱矩阵(y\u true,y\u pred)
时,结果如下:

array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]], dtype=int64)
请注意,对于这个特定的输入,结果是一个3x3矩阵,因此在这种情况下,您需要一个包含三个列和索引名称的列表。 您可以将结果直接放入数据帧中,如下所示:

pd.DataFrame(confusion_matrix(y_true, y_pred),columns=['column 1','column 2','column 3'], index=['index 1', 'index 2','index 3'])
结果如下:

     column 1  column 2  column 3
index 1         2         0         0
index 2         0         0         1
index 3         1         0         2
当我运行
混乱矩阵(y\u true,y\u pred)
时,结果如下:

array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]], dtype=int64)
请注意,对于这个特定的输入,结果是一个3x3矩阵,因此在这种情况下,您需要一个包含三个列和索引名称的列表。 您可以将结果直接放入数据帧中,如下所示:

pd.DataFrame(confusion_matrix(y_true, y_pred),columns=['column 1','column 2','column 3'], index=['index 1', 'index 2','index 3'])
结果如下:

     column 1  column 2  column 3
index 1         2         0         0
index 2         0         0         1
index 3         1         0         2

您正在创建一个名为“混淆矩阵”的数据帧,然后将同名函数的结果赋值为值:“混淆矩阵(y,yhat)”。也许你应该检查一下。@Ivanovitch,更改了名称,还是相同的错误你在调用函数吗?如果是,请发布。@Ivanovitch,只是内置的
sklearn.metrics.confusion_matrix()
可能是
confusion_matrix
被覆盖为您上次运行的数据帧。因此,现在函数
sklearn.metrics.conflusion\u matrix()
不起作用。请尝试再次导入该函数,或者重新启动Python并更改混淆矩阵的名称。您正在创建一个名为“混淆矩阵”的数据帧,然后将同名函数的结果赋值为值:“混淆矩阵(y,yhat)”。也许你应该检查一下。@Ivanovitch,更改了名称,还是相同的错误你在调用函数吗?如果是,请发布。@Ivanovitch,只是内置的
sklearn.metrics.confusion_matrix()
可能是
confusion_matrix
被覆盖为您上次运行的数据帧。因此,现在函数
sklearn.metrics.conflusion\u matrix()
不起作用。请尝试再次导入该函数,或者重新启动Python并更改混淆矩阵的名称。这正是发生的情况,看起来像%\谢谢!事情就是这样的看起来像%\谢谢!