我们该选择哪一个学习算法、使用哪一种参数配置,这就是机器学习中的模型选择问题。理想的解决方案是对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型。但我们无法直接获得泛化误差,训练误差又由于过拟合现象的存在不适合作为标准,如何进行模型评估与选择?
basic terms
1.误差(训练误差和泛化误差)error(training error&generalization error)
误差:把学习器的实际预测输出与样本的真实输出之间的差异称为误差
训练误差:学习器在训练集上的误差
泛化误差:在新样本上的误差
2.过拟合、欠拟合
3.评估方法
用测试集上的‘测试误差’作为泛化误差的近似。
从m个样例数据中产生出训练集S和测试集T:
- 留出法(hold-out):直接将数据集合划分为S、T,S与T互斥(一般要进行若干次随机划分、重复进行试验评估后取平均值)。适用于数据集较大的情况。
- 交叉验证法(cross validation):现将数据集D划分为k个大小相似的互斥子集。进行k次训练和测试,每次k-1个子集作为训练集,流出1个作为测试集。适用于数据集较大的情况。
- 自助法:自助从数据集D中有放回的随机采集m个样本构成D',将D’用作训练集,D/D'用作测试集,这样的测试结果,称‘包外估计’。适用于数据集较小的情况。
4.调参与最终模型
大多数学习算法都有些参数需要设定,参数配置不同,学的模型的性能往往有显著差别。需要调参(对算法设定参数)
5.性能度量
对于学习器的泛化性能进行评估,衡量模型泛化能力的评价标准。
前面提到了错误率和精度,这是分类任务中最常用的两种性能度量。错误率是分类错误的样本书占样本总数的比例,精度则是分类正确的样本数占 样本总数的比例。
混淆矩阵
这里又提了三个度量:查准率、查全率、F1
1)查准率:
2)查全率:
3)F1:是=
4)Fp
5)宏查全率、宏查准率、宏F1
6)微查准率、微查全率、微F1
ROC\AUC:
ROC:受试者工作特征(Receiver Operating Characteristic)
roc曲线的纵轴为“真正例率”,纵轴为“假正例率”,两者的定义
6. 代价敏感错误率与代价曲线
代价矩阵:cost01与cost10
ROC曲线不能反映出了,取而代之的是代价曲线:横轴是取值为(0,1)的正例概率代价,总之是取值为(0,1)的归一化代价
7.比较检验
这里用到了假设检验的知识。
8.偏差与方差