一、模型评估的重要性
机器学习模型评估是机器学习领域中的一个重要研究方向,其研究背景在于随着大数据时代的到来,人们面临着越来越多的数据分析和处理任务,而机器学习作为一种高效的数据处理技术,在很多领域都得到了广泛应用。然而,机器学习模型的效果评估是机器学习应用过程中一个非常关键的问题,因此机器学习模型评估的研究具有非常重要的意义。
二、模型评估的意义
机器学习模型评估的研究意义在于:
- 提高模型的预测精度和泛化能力;
- 帮助我们更好地理解模型的内部机制和性能;
- 为模型优化和改进提供依据;
- 应用于实际问题的解决,提高生产力和效率。
三、评价模型评估的标准
3.1过拟合
过拟合其实就是为了得到一致假设而使得假设过于地严格。使得其在训练集上的表现非常地完美,但是在训练集以外的数据集却表现不好。
3.2欠拟合
欠拟合(是指模型在训练数据上没有获得充分小的误差.造成欠拟合的原因通常是模型学习能力过低,具体地说,就是模型参数过少或者结构过于简单,以至于无法学习到数据的内在结构和特征.
四、模型评估的方法
4.1回归模型评估方法
1. 平均平方误差(MSE)
计算每一个样本的预测值与真实值之差的平方,然后求和再取平均值,其值越小说明拟合效果越好
,又称为均方误差
2. 平均绝对误差(MAE)
平均绝对误差能更好地反映预测值误差的实际情况。MAE的值越接近0,预测模型的准确性越高
,又称为绝对误差
4.2 分类模型评估方法
混淆矩阵
混淆矩阵是监督学习中的一种可视化工具,主要用于模型的分类结果和实例的真实信息的比较 。
矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。其中当A、D值越大,B、C值越小时表示模型效果越好。
准确率Accuracy
准确率是最常用的分类性能指标。
Accuracy = (TP+TN)/(TP+FN+FP+TN)
预测正确的数占样本总数的比例,即正确预测的正反例数 /总数。
代码实现:
from sklearn.metrics import accuracy_score
y_false = [0,4,2,6,7,5]
y_true = [0,6,5,2,3,2]
accuracy_score(y_true,y_false)
精确度Precision
精确率只是针对预测正确的正样本而不是所有预测正确的样本。
表现为预测出是正的里面有多少是正确的。
Precision = TP/(TP+FP)
召回率Recall
正确预测的正例数 /实际正例总数
Recall = TP/(TP+FN),即正确预测的正例数 /实际正例总数
ROC曲线、AUC曲线
TPR = TP / (TP + FN)
所有真实类别为1的样本中,预测类别为1的比例
FPR = FP / (FP + TN) = 1 - TNR
所有真实类别为0的样本中,预测类别为1的比例
AUC:(被定义为ROC曲线下的面积(ROC的积分),通常大于0.5小于1。随机挑选一个正样本以及一个负样本,分类器判定正样本的值高于负样本的概率就是 AUC 值。AUC值(面积)越大的分类器,性能越好
交叉验证
对数据集进行划分。每次划分时,在不同的数据集上进行训练、测试评估,从而得出一个评价结果;如果是5折交叉验证,意思就是在原始数据集上,进行5次划分,每次划分进行一次训练、评估,最后得到5次划分后的评估结果,一般在这几次评估结果上取平均得到最后的评分
from sklearn.model_selection import cross_val_score
from sklearn import model_selection.cross
print("Cross-validation scores: {}".format(scores))
print("Average score: {}".format(scores.mean()))