在使用 sklearn 函数进行相关值计算时候,抛出了这样一个警告:Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior. (原因是 在y-pred_1当中 没有预测出2这个类别,所以抛出了异常。) 有关这个函数的使用可见: sklearn.metrics.precision_recall_fscore_support-scikit-learn中文社区 代码如下:
from sklearn.metrics import precision_recall_fscore_support y_true_1 = np.array([0,0,0,1,2]) y_pred_1 = np.array([0,0,0,1,0]) print(precision_recall_fscore_support(y_true_1, y_pred_1, average='macro'))
由此,开始了一番对 Precision, recall, and F-score 的探索之路。
经过查阅,原来计算 F1-score 有不同的方法: 请看我下面的手稿:
对应手稿中①的代码为
y_true_1 = np.array([0,0,0,1,2]) y_pred_1 = np.array([0,0,0,1,0]) print(precision_recall_fscore_support(y_true_1, y_pred_1, average='micro')) # (0.8, 0.8, 0.8000000000000002, None)
对应手稿中②的代码为,在最开始已经给出
对应手稿中③的代码为:
y_true_1 = np.array([0,0,0,1,1]) y_pred_1 = np.array([0,0,0,1,0]) print(precision_recall_fscore_support(y_true_1, y_pred_1, average='binary')) # (1.0, 0.5, 0.6666666666666666, None)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)