混淆矩阵:RecursionError

时间:2019-07-14 03:46:48

标签: python-3.x pandas scikit-learn

我一直在尝试复制用于绘制混淆矩阵的在线教程,但遇到了递归错误,尝试重置递归限制,但错误仍然存​​在。代码如下:

log = LogisticRegression()
log.fit(x_train,y_train)
pred_log = log.predict(x_train)
confusion_matrix(y_train,pred_log)

我得到的错误是:

---------------------------------------------------------------------------
RecursionError                            Traceback (most recent call last)
<ipython-input-57-4b8fbe47e72d> in <module>
----> 1 (confusion_matrix(y_train,pred_log))

<ipython-input-48-92d5242f8580> in confusion_matrix(test_data, pred_data)
      1 def confusion_matrix(test_data,pred_data):
----> 2     c_mat = confusion_matrix(test_data,pred_data)
      3     return pd.DataFrame(c_mat)

... last 1 frames repeated, from the frame below ...

<ipython-input-48-92d5242f8580> in confusion_matrix(test_data, pred_data)
      1 def confusion_matrix(test_data,pred_data):
----> 2     c_mat = confusion_matrix(test_data,pred_data)
      3     return pd.DataFrame(c_mat)

RecursionError: maximum recursion depth exceeded

火车的形状和测试数据如下

x_train.shape,y_train.shape,x_test.shape,y_test.shape 
# ((712, 7), (712,), (179, 7), (179,))

尝试过:sys.setrecursionlimit(1500)
但是仍然没有解决方案。

1 个答案:

答案 0 :(得分:0)

看起来您正在递归地调用相同的函数。尝试更改外部函数名称。

      1 def confusion_matrix(test_data,pred_data):
----> 2     c_mat = confusion_matrix(test_data,pred_data)
      3     return pd.DataFrame(c_mat)

收件人

def confusion_matrix_pd_convertor(test_data,pred_data):
    c_mat = confusion_matrix(test_data,pred_data)
    return pd.DataFrame(c_mat)
log = LogisticRegression()
log.fit(x_train,y_train)
pred_log = log.predict(x_train)
confusion_matrix_pd_convertor(y_train,pred_log)