【问题标题】:Confusion Matrix : RecursionError混淆矩阵:RecursionError
【发布时间】:2019-11-23 06:03:21
【问题描述】:

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

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)
但还是没有解决。

【问题讨论】:

  • 我觉得应该是pred_log = log.predict(x_test)confusion_matrix(y_test, pred_log)
  • 已经尝试过您建议的解决方案,但在这种情况下仍然存在相同的错误。
  • 你看到这个answer了吗?

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


【解决方案1】:

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

      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)

【讨论】:

    猜你喜欢
    • 2015-12-17
    • 2020-10-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2014-07-09
    • 2018-09-26
    • 2020-02-23
    相关资源
    最近更新 更多