精度得分-TypeError:“列表”对象不可调用

时间:2019-11-12 13:17:48

标签: python-3.x scikit-learn precision-recall

使用precision_score中的scikit-learn时出现以下错误。

precision_score(y_sm[test_index], prediction)
>>> TypeError: 'list' object is not callable

prediction.shape 
>>> (2830,)

y_sm[test_index].shape
>>> (2830,)

这是怎么了?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用以下方法检查您的类型: type(prediction) 可能会返回:列表。

基于precision_score的文档:

parameters: 

y_true : 1d array-like, or label indicator array / sparse matrix

    Ground truth (correct) target values.
y_pred : 1d array-like, or label indicator array / sparse matrix

    Estimated targets as returned by a classifier.

您必须使用一维数组:

import numpy as np

prediction_a = np.asarray(prediction, dtype=np.float32)
y_sm[test_index]_a = np.asarray(y_sm[test_index], dtype=np.float32)

precision_score(y_sm[test_index]_a, prediction_a)

答案 1 :(得分:1)

您确定没有定义名称为list的{​​{1}}吗?

尝试:

precision_score

它返回列表或函数吗?