模型评估是机器学习流程中至关重要的环节,它帮助我们判断模型的性能和泛化能力。以下是核心知识点梳理:
一、基础概念 🔍
- 评估目标:衡量模型在未知数据上的表现
- 评估数据:通常使用测试集( TestData )进行验证
- 评估指标:根据任务类型选择合适的指标(如分类/回归)
二、常用评估指标 📊
指标类型 | 指标 | 公式 | 说明 |
---|---|---|---|
分类任务 | 准确率 | Accuracy = 正确预测数 / 总样本数 | 基础评估指标 |
分类任务 | 精确率 | Precision = TP / (TP+FP) | 关注正类召回能力 |
分类任务 | 召回率 | Recall = TP / (TP+FN) | 关注负类漏检情况 |
分类任务 | F1 Score | 2*(Precision*Recall)/(Precision+Recall) | 精确率与召回率的调和平均 |
三、评估方法 🧪
划分训练集/测试集
- 采用
train_test_split
分割数据 - 可参考 数据预处理教程
- 采用
交叉验证
- K折交叉验证(K-Fold Cross Validation)提升评估可靠性
- 常见参数:
k=5
或k=10
学习曲线
- 观察模型在训练集和测试集上的表现随数据量变化的趋势
四、实战案例 📈
from sklearn.metrics import accuracy_score, confusion_matrix
# 预测结果
y_true = [0, 1, 1, 0, 1]
y_pred = [0, 1, 0, 0, 1]
# 计算准确率
accuracy = accuracy_score(y_true, y_pred)
print(f"准确率: {accuracy:.2f}")
# 生成混淆矩阵
conf_matrix = confusion_matrix(y_true, y_pred)
print("混淆矩阵:\n", conf_matrix)
五、进阶技巧 🛠️
- 使用
classification_report
获取详细指标 - 可视化 ROC 曲线(ROC_Curve)评估分类模型
- 结合 模型调参指南 优化评估效果
💡 评估是模型迭代的核心依据,建议结合多种指标综合分析模型表现。