随机森林分类的评价指标
时间: 2025-01-02 20:38:58 浏览: 13
### 随机森林分类模型的评估指标
对于随机森林分类模型而言,多个评价指标可以用来衡量其性能表现。准确率是一个常用的评价标准,它表示被正确分类的数据点比例[^1]。
然而,在某些情况下,仅依赖于准确率可能不足以全面反映模型的表现。此时,召回率变得尤为重要。召回率定义为正确预测的正样本数量除以实际存在的所有正样本的数量,即 \(R = \frac{TP}{TP + FN}\)[^3]。这一比率揭示了模型识别出全部潜在阳性案例的能力。
为了综合考虑精确率(Precision)和召回率之间的关系,通常会引入F1分数作为补充性的评判依据。F1分数是基于两者调和平均值得到的结果,适用于需要在二者间寻求平衡的情形下[^2]。
除了上述提到的基础指标外,接收者操作特征曲线下的面积(Area Under Curve, AUC),也常用于描述二元分类器系统的整体质量。AUC值越接近于1,则意味着该分类器区分能力越好。
```python
from sklearn.metrics import accuracy_score, recall_score, f1_score, roc_auc_score
import numpy as np
def evaluate_model(y_true, y_pred, probas=None):
"""
计算并打印给定的真实标签y_true与预测标签y_pred间的多种评分
参数:
y_true (array-like): 测试集中的真实目标变量.
y_pred (array-like): 对应测试集中各观测值所作之预测.
probas (array-like or None): 如果提供的话,将是每个类别的概率估计;这主要用于计算AUC ROC得分.
返回:
dict: 各种度量名称及其对应的数值组成的字典。
"""
scores = {
'Accuracy': round(accuracy_score(y_true, y_pred), 4),
'Recall': round(recall_score(y_true, y_pred), 4),
'F1 Score': round(f1_score(y_true, y_pred), 4)
}
if probas is not None and isinstance(probas, list) or isinstance(probas, np.ndarray):
auc_roc = roc_auc_score(y_true, [p[1] for p in probas])
scores['AUC-ROC'] = round(auc_roc, 4)
return scores
# 示例用法
if __name__ == "__main__":
# 假设我们已经有了真实的类别标签以及由我们的训练好的随机森林模型产生的预测结果
true_labels = [...] # 这里应该填入具体数据
predicted_labels = [...] # 这里也应该对应地填写具体的预测结果
probabilities = ... # 可选参数,如果要计算AUC则需传入相应的概率分布向量
evaluation_results = evaluate_model(true_labels, predicted_labels, probabilities)
print(evaluation_results)
```
阅读全文