运行此代码后
matthews_corrcoef(test_labels, y_test_pred)*100
我遇到了这个错误
/usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py:900: RuntimeWarning: invalid value encountered in double_scalars
mcc = cov_ytyp / np.sqrt(cov_ytyt * cov_ypyp)
0.0
为了获得精确分数
from sklearn.metrics import precision_score
sklearn.metrics.precision_score(test_labels, y_test_pred, pos_label= 1)*100
得到另一个错误
usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py:1272: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.
_warn_prf(average, modifier, msg_start, len(result))
0.0
为了解决这个问题,我尝试用下面的代码从训练和测试数据中删除NAN和无穷大的值
te_fin = np.nan_to_num(te_fin)
但是,问题仍然存在,模型运行时非常慢。
发布于 2021-09-12 16:02:18
第二条消息是由sklearn.metrics.precision_score函数引发的警告。要消除该警告,必须通过'zero_divison‘参数显式指定所需的行为。请注意,精度是使用公式精度= Tp / (Tp + Fp)计算的。该警告告诉您正在执行被零除,这是一个无效的操作。这意味着您的预测值不包含正标签,所有标签都被预测为负标签。
出于同样的原因,第一个警告被抛出,但是该函数没有提供一个参数来指定在除法为零的情况下该如何处理。您可能需要在调用函数之前自己检查这些值,以避免出现警告。
https://stackoverflow.com/questions/69144659
复制相似问题