西瓜书+实战+吴恩达机器学习(一)机器学习基础(数据集划分、分类回归评估指标)
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
0. 前言
通常,我们将数据集划分为以下几个子数据集:
- 训练集:用于训练模型参数的数据集
- 开发集:用于调试模型超参数的数据集(相当于平时所说的测试集)
- 测试集:只用于测试模型性能的数据集
针对回归的结果,对模型进行评估,通常有:
- 均方误差MSE、均方根误差RMSE、平均绝对误差MAE
针对分类的结果,对模型进行评估,通常有以下几种方法:
- 错误率、精度Accuracy
- 查准率Precision、查全率Recall、F-score(F1-measure)
- 混淆矩阵Confusion Matrix、TPR、FPR、TNR、FNR
- ROC、AUC
初始作如下定义:
- TP(True Positive):预测结果为正类,实际上就是正类
- FP(False Positive):预测结果为正类,实际上是反类
- FN(False negative):预测结果为反类,实际上是正类
- TN(True negative):预测结果为反类,实际上就是反类
1. 数据集划分方法
在此评估方法中,我们假设测试样本也是从样本真实分布中独立同分布采样的。
留出法(hold-out):将数据集划分为两个互斥的子集,一般要采用若干次随机划分然后取平均值,通常取~作为测试集。
交叉验证法(cross validation):将数据集划分为个大小相似的互斥子集,每次选择个作为训练集,个作为测试集,最后取组测试结果的平均,一般的取值。
自助法(bootstrapping):对数据集进行有放回采样,采样次,得到数据集作为训练集,通过取极限可得中约有的样本未出现在中,所以可将这部分作为测试集,自主法产生的数据改变了初始的数据分布,这会引入估计偏差。
通常,将数据划分为训练集、开发集、测试集,基于开发集上的性能来进行模型选择和调参,基于测试集评估模型方法。
按照以前的数据量划分,可以划分为, 或者 ,诸如此类。在大数据的情况下,例如有1,000,000条数据,可能开发集和测试集仅各10,000数据就足够,,诸如此类。
2. 模型性能度量
2.1. 回归评估指标
名称 | 公式 |
---|---|
均方误差MSE(mean squared error) | |
均方根误差RMSE(root mean squared error) | |
平均绝对误差MAE(mean absolute error) |
2.2. 分类评估指标
名称 | 公式 |
---|---|
错误率 | |
精度Accuracy |
Precision可以理解为预测结果为正类中有多少是正类。
Recall可以理解为真实结果为正类中有多少被预测成正类。
F1-score是综合考虑Precision和Recall的指标。
能表达出对查准率、查全率的不同偏好,对查全率有更大的影响,对查准率有更大的影响。
名称 | 公式 |
---|---|
查准率Precision | |
查全率Recall | |
F1-score | |
-score |
TPR可以理解为所有正类中,有多少被预测成正类(正类预测正确)。
FPR可以理解为所有反类中,有多少被预测成正类(正类预测错误)。
TNR可以理解为所有反类中,有多少被预测成反类(反类预测正确)。
FNR可以理解为所有正类中,有多少被预测成反类(反类预测错误)。
名称 | 公式 |
---|---|
TPR(True Positive Rate) | |
FPR(False Positive Rate) | |
TNR(True Negative Rate) | |
FNR(False Negative Rate) |
ROC受试者工作特征曲线(Receiver Operating Characteristic)以FPR为横坐标,TPR为纵坐标,将学习器的预测结果排序,越前面的样本是正例的可能性越高,并按照这个顺序逐个将前面的样本作为正例进行预测,可得如下曲线(图源:百度百科):
AUC(Area Under ROC Curve)定义为ROC曲线下的面积,面积越大,模型性能越好:
3. 非均等代价
不同类型的错误产生的代价不同,可使用非均等代价(unequal cost)(图源:机器学习):
代价敏感错误率定义为:
在非均等代价情况下,ROC不能反映学习器的期望总体代价,可以使用代价曲线:
其中,表示样例为正的数目。ROC曲线上面每一点对应代价平面上的一条线段,所有线段下的面积表示了该条件下的期望总体代价(图源:机器学习):
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~