如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
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):将数据集划分为两个互斥的子集,一般要采用若干次随机划分然后取平均值,通常取 2 / 3 2/3 2/3~ 4 / 5 4/5 4/5作为测试集。
交叉验证法(cross validation):将数据集划分为 k k k个大小相似的互斥子集,每次选择 k − 1 k-1 k−1个作为训练集, 1 1 1个作为测试集,最后取 k k k组测试结果的平均,一般的取值 k = 10 k=10 k=10。
自助法(bootstrapping):对数据集 D D D进行有放回采样,采样 m m m次,得到数据集 D ′ D' D′作为训练集,通过取极限可得 D D D中约有 36.8 % 36.8\% 36.8%的样本未出现在 D ′ D' D′中,所以可将这部分作为测试集,自主法产生的数据改变了初始的数据分布,这会引入估计偏差。
通常,将数据划分为训练集、开发集、测试集,基于开发集上的性能来进行模型选择和调参,基于测试集评估模型方法。
按照以前的数据量划分,可以划分为, 60 % 20 % 20 % 60\%\ 20\%\ 20\% 60% 20% 20% 或者 70 % 30 % 70\%\ 30\% 70% 30%,诸如此类。在大数据的情况下,例如有1,000,000条数据,可能开发集和测试集仅各10,000数据就足够, 98 % 1 % 1 % 98\%\ 1\%\ 1\% 98% 1% 1%,诸如此类。
2. 模型性能度量
2.1. 回归评估指标
名称 | 公式 |
---|---|
均方误差MSE(mean squared error) | 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 \frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2 m1i=1∑m(f(xi)−yi)2 |
均方根误差RMSE(root mean squared error) | 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 \sqrt{\frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2} m1i=1∑ |