confusion_matrix error «DataFrame» «объект не вызывается» - PullRequest
0 голосов
/ 19 мая 2018

Что я делаю не так?Я установил обе переменные в список.Также попробовал 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)

Out:

[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                                 Traceback (most recent call last)
<ipython-input-159-e1640f0e3b13> in <module>()
     45 print(yhat)
     46 
---> 47 confusion_matrix = pd.DataFrame(confusion_matrix(y, yhat), columns=["Predicted False", "Predicted True"], index=["Actual False", "Actual True"])
     48 display(confusion_matrix)
     49 

TypeError: 'DataFrame' object is not callable

Не уверен, что здесь происходит ...

Ответы [ 2 ]

0 голосов
/ 19 мая 2018
from sklearn.metrics import confusion_matrix
y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]

Когда я запускаю confusion_matrix(y_true, y_pred), результат будет следующим:

array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]], dtype=int64)

Имейте в виду, что результат для этого конкретного ввода - матрица 3x3, поэтому для этого случая вам понадобитсясписок с тремя именами для столбцов и индекса.Вы можете поместить результат непосредственно в Dataframe следующим образом:

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
0 голосов
/ 19 мая 2018

Вы делаете это в блокноте?Если это так, возможно, метод confusion_matrix был затенен DataFrame, когда вы вызывали его в первый раз.Попробуйте изменить имя переменной и перезапустить ядро.

...