ValueError: Target is multiclass but average='binary'. Please choose another average setting, one of [None, 'micro', 'macro', 'weighted']
时间: 2024-01-15 22:03:00 浏览: 232
python3.7解决最小二乘遇到ValueError:Expected 2D array, got 1D array instead: array=[5.].关于reshape和predict
这个错误通常在使用sklearn的某些评估器(如precision_score、recall_score、f1_score等)时会出现。它的原因是因为你的目标变量是多类别的,而您指定的平均方式是二元的。请将您的平均参数设置为'micro','macro','weighted'或者None。
在这些平均方式中,一般会推荐使用'macro'或'weighted',因为它们可以考虑到多类别的情况。如果您的数据集中各个类别的样本数量不平衡,则选择'weighted'可以更好地反映整体效果。如果您的数据集中各个类别的样本数量相同,则可以选择'macro'。
以下是一个使用'macro'平均方式的示例:
```python
from sklearn.metrics import precision_score, recall_score, f1_score
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
precision = precision_score(y_true, y_pred, average='macro')
recall = recall_score(y_true, y_pred, average='macro')
f1 = f1_score(y_true, y_pred, average='macro')
print("Precision:", precision)
print("Recall:", recall)
print("F1-score:", f1)
```
输出:
```
Precision: 0.22
Recall: 0.22
F1-score: 0.22
```
阅读全文