UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 due to no true samples. Use zero_division parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) 怎么解决
时间: 2023-06-27 07:01:06 浏览: 889
这个警告是因为在计算召回率时,没有真正的样本,导致除数为0。你可以使用`zero_division`参数控制警告的行为。
例如,如果想要将召回率未定义的标签的值设置为0,可以将`zero_division`参数设置为0,如下所示:
```python
from sklearn.metrics import precision_recall_fscore_support
precision, recall, f1_score, support = precision_recall_fscore_support(y_true, y_pred, zero_division=0)
```
这样,如果召回率未定义,它将被设置为0,而不是发出警告。
相关问题
UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 due to no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result)) 怎么解决
这个警告表示召回率无法计算,因为没有真正的样本。可以使用 `zero_division` 参数控制这种情况的行为。
例如,如果想将召回率设置为0.0,可以将 `zero_division` 参数设置为0,如下所示:
```python
from sklearn.metrics import precision_recall_fscore_support
precision, recall, f1_score, support = precision_recall_fscore_support(y_true, y_pred, zero_division=0)
```
或者,你也可以选择忽略这个警告:
```python
import warnings
warnings.filterwarnings('ignore', '.*recall.*ill-defined.*')
```
不过需要注意,忽略警告可能会掩盖真正的问题,所以最好还是尝试解决这个问题。
C:\Users\chaizhiyuan\Anaconda3\lib\site-packages\sklearn\metrics\_classification.py:1248: UndefinedMetricWarning: Recall is ill-defined and being set to 0.0 due to no true samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, modifier, msg_start, len(result))
这个警告是因为在计算召回率时,模型没有预测出任何真实样本,因此召回率被设置为0。你可以使用 `zero_division` 参数来控制这个行为,将其设置为 `1` 或者 `0`,以便在召回率计算时避免出现警告。例如:
```python
from sklearn.metrics import precision_recall_fscore_support
precision, recall, f1_score, support = precision_recall_fscore_support(y_true, y_pred, zero_division=1)
```
这里将 `zero_division` 设置为 `1`,即当召回率分母为0时,将召回率设置为1。
阅读全文