sklearn 的 ValueError metrics.average_precision_score
ValueError with sklearn metrics.average_precision_score
我正在尝试使用 metrics.average_precision_score 来计算我的 sklearn KNN 模型的 average_precision,我的代码是这样的:
average_precision = metrics.average_precision_score(y_test.values, np.array(y_pre.tolist))
但是我得到这个错误:
...
File "C:\My software\Anaconda\lib\site-packages\sklearn\metrics\_ranking.py", line 211, in average_precision_score
"y_true." % pos_label)
ValueError: pos_label=1 is invalid. Set it to a label in y_true.
为了检查我的 y_test 和 y_pre,我使用了:
print(type(y_test))
print(type(y_test.values))
print(type(y_pre))
print(y_test.values)
print(y_pre)
我得到了结果:
<class 'pandas.core.series.Series'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
[3 3 3 3 3 2 3 3 3 2 2 3 3 2 3 3 3 2 3 2 3 3 3 2 3 2 3 3 3 3 3 2 2 3 2 3 3
3 3 2 3 2 3 3 2 3 3 3 2 3 3 3 3 2 3 3 3 3 2 3 3 3 3 3 3 2 3 3 2 3 3 3 3 3
3 3 3 3 2 3 3 2 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 2 3 3 2 3 2 3 3 2 2 3
2 3 2 2 3 2 3 3]
[3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3]
我不知道为什么这不起作用,请帮助我,谢谢。
将标签映射到 y_test.values
和 y_pre
中的 0
和 1
,而不是 3
和 2
。
记住:1
必须是正标签。
我正在尝试使用 metrics.average_precision_score 来计算我的 sklearn KNN 模型的 average_precision,我的代码是这样的:
average_precision = metrics.average_precision_score(y_test.values, np.array(y_pre.tolist))
但是我得到这个错误:
...
File "C:\My software\Anaconda\lib\site-packages\sklearn\metrics\_ranking.py", line 211, in average_precision_score
"y_true." % pos_label)
ValueError: pos_label=1 is invalid. Set it to a label in y_true.
为了检查我的 y_test 和 y_pre,我使用了:
print(type(y_test))
print(type(y_test.values))
print(type(y_pre))
print(y_test.values)
print(y_pre)
我得到了结果:
<class 'pandas.core.series.Series'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
[3 3 3 3 3 2 3 3 3 2 2 3 3 2 3 3 3 2 3 2 3 3 3 2 3 2 3 3 3 3 3 2 2 3 2 3 3
3 3 2 3 2 3 3 2 3 3 3 2 3 3 3 3 2 3 3 3 3 2 3 3 3 3 3 3 2 3 3 2 3 3 3 3 3
3 3 3 3 2 3 3 2 2 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 2 3 3 2 3 2 3 3 2 2 3
2 3 2 2 3 2 3 3]
[3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3]
我不知道为什么这不起作用,请帮助我,谢谢。
将标签映射到 y_test.values
和 y_pre
中的 0
和 1
,而不是 3
和 2
。
记住:1
必须是正标签。