模型评估是对机器学习模型性能和效果进行评价的过程。
常用的评估指标有:
- 1. 准确率(Accuracy):正确预测的样本数占总样本数的比例。用于评估分类模型。
- 2. 精确率(Precision):真阳性样本数占预测为阳性的样本数的比例。用于评估分类模型,尤其是不平衡数据集。
- 3. 召回率(Recall):真阳性样本数占实际阳性样本数的比例。用于评估分类模型,尤其是不平衡数据集。
- 4. F1分数:精确率和召回率的调和平均值。综合考虑精确率和召回率,用于评估分类模型。
- 5. 混淆矩阵(Confusion Matrix):显示模型在测试集上的正确与错误预测结果,每个类别的真实情况与预测情况的对应矩阵。
- 6. ROC曲线:显示模型在不同分类阈值下的真阳性率(TPR)和假阳性率(FPR)。用于评估分类模型。
- 7. 平均绝对误差(MAE):预测值与真实值绝对差的平均值。用于评估回归模型。
- 8. 均方根误差(RMSE):预测值与真实值平方差的平均值的平方根。用于评估回归模型。
- 9. R方(R2):真实值与预测值之间的相关系数平方。用于评估回归模型,值越接近1越好。
代码示例:
python
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
from sklearn.metrics import confusion_matrix
from sklearn.metrics import roc_auc_score, roc_curve
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
y_true = [0, 1, 0, 0, 1]
y_pred = [0, 1, 0, 0, 0]
# 准确率
accuracy = accuracy_score(y_true, y_pred)
# 精确率、召回率和F1分数
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)
# 混淆矩阵
cm = confusion_matrix(y_true, y_pred)
# ROC和AUC
fpr, tpr, thresholds = roc_curve(y_true, y_pred)
roc_auc = roc_auc_score(y_true, y_pred)
# 回归评估
y_true = [1, 2, 3]
y_pred = [1, 2, 2]
mae = mean_absolute_error(y_true, y_pred)
rmse = np.sqrt(mean_squared_error(y_true, y_pred))
r2 = r2_score(y_true, y_pred)