给出F1-score计算公式和python代码
时间: 2023-07-23 11:06:08 浏览: 68
F1-score是一个综合评价指标,用于衡量分类模型的精确度和召回率的平衡情况。它的计算公式如下:
F1-score = 2 * (precision * recall) / (precision + recall)
其中,precision(精确度)表示模型预测为正例的样本中真正为正例的比例,定义为:
precision = TP / (TP + FP)
recall(召回率)表示真正为正例的样本中被模型正确预测为正例的比例,定义为:
recall = TP / (TP + FN)
其中,TP表示真正例(True Positive)的数量,FP表示假正例(False Positive)的数量,FN表示假反例(False Negative)的数量。
以下是一个使用sklearn库计算F1-score的示例代码:
```python
from sklearn.metrics import f1_score
# 实际标签
y_true = [0, 1, 1, 0, 1, 0, 0]
# 模型预测结果
y_pred = [0, 1, 0, 0, 1, 1, 0]
# 计算F1-score
f1 = f1_score(y_true, y_pred)
print("F1-score:", f1)
```
请注意,这里的示例代码使用了sklearn库中的f1_score函数来计算F1-score。如果你没有安装此库,可以通过运行`pip install scikit-learn`来安装。
相关问题
F1-score Python实现
F1-score是基于精度和召回率的综合指标,其计算公式为:
F1-score = 2 * (precision * recall) / (precision + recall)
其中,precision表示精度,recall表示召回率。
Python实现如下:
```python
from sklearn.metrics import precision_recall_fscore_support
# y_true为真实标签,y_pred为预测标签
precision, recall, f1_score, support = precision_recall_fscore_support(y_true, y_pred, average='binary')
print("Precision: ", precision)
print("Recall: ", recall)
print("F1-score: ", f1_score)
```
其中,average参数可以选择为binary,macro,micro,weighted等,分别对应二分类、多分类、全局、加权等不同的计算方式。
python不用库实现准确率、召回率和F1-score
可以使用Python编写代码来计算准确率、召回率和F1-score,以下是一个示例代码:
```python
# 实际值
y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1]
# 预测值
y_pred = [1, 0, 0, 1, 1, 1, 0, 1, 0]
# 计算准确率
accuracy = sum([1 for i in range(len(y_true)) if y_true[i] == y_pred[i]]) / len(y_true)
print("Accuracy:", accuracy)
# 计算召回率
true_positive = sum([1 for i in range(len(y_true)) if y_true[i] == 1 and y_pred[i] == 1])
false_negative = sum([1 for i in range(len(y_true)) if y_true[i] == 1 and y_pred[i] == 0])
recall = true_positive / (true_positive + false_negative)
print("Recall:", recall)
# 计算F1-score
precision = true_positive / sum(y_pred)
f1_score = 2 * precision * recall / (precision + recall)
print("F1-score:", f1_score)
```
这个示例代码中,我们使用了两个列表 `y_true` 和 `y_pred`,分别表示实际值和预测值。然后,我们分别计算了准确率、召回率和F1-score。其中准确率的计算比较简单,只需要统计预测正确的样本数量并除以总样本数即可。召回率和F1-score的计算需要分别统计真正例、假反例和真反例的数量,然后根据公式计算即可。