【问题标题】:Precision Score - TypeError: 'list' object is not callable精度分数 - 类型错误:“列表”对象不可调用
【发布时间】:2020-03-08 05:13:18
【问题描述】:

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

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

prediction.shape 
>>> (2830,)

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

这里有什么问题?提前非常感谢。

【问题讨论】:

  • 导入numpy as np当然可以试试precision_score(np.array(y_sm[test_index],np.array(prediction))
  • 哦,我明白了。我发起了一个名为precision_scorelist,这让我很受挫。抱歉,给大家带来不便。
  • 我就是这么想的。所以接受并回答了问题。欢呼

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


【解决方案1】:

您确定没有定义名称为precision_scorelist 吗?

试试:

print(precision_score)

它返回一个列表还是一个函数?

【讨论】:

    【解决方案2】:

    您可以通过以下方式检查您的类型: 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)
    

    【讨论】:

    • 嘿,我创建了一个名为precision_score 的列表,这让我很不爽。抱歉,给大家带来不便。你知道吗,我该如何结束这个问题?
    猜你喜欢
    • 2017-02-19
    • 2021-01-27
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    相关资源
    最近更新 更多