一、偏差方差理论
模型——在测试集上的泛化能力足够强
为样本标签,
为模型对样本的拟合结果,左侧为测试均方误差(即模型泛化能力),右侧第一项为预测结果本身的的方差,第二项为拟合结果与ground truth
间的偏差(L2范数),第三项为样本标签与ground truth之间的噪声偏差(不可约误差)——>建模任务的难度
- 模型方差:从i.i.d.的数据集中抽样出不同的训练集时,由他们训练得到的模型的差异性就是模型的方差(模型复杂度越高,模型方差越大),度量同一个模型在不同数据集上的稳定性
- 模型偏差:由于模型复杂度构成的误差(单个模型的学习能力)
- 偏差方差理论:泛化能力=学习算法的能力+数据的充分性+学习任务本身的难度
二、测试误差的估计
Goal:选择测试误差最小的模型
- 训练误差修正(间接估计):
模型越复杂,训练误差减小,测试误差先减后增。因此构建一个特征较多的模型使其过拟合,此时训练误差小,测试误差大,因此加入对特征个数的惩罚项。从而当training error随着特征数减小时,penalty随着特征个数增加而增大。
,其中d为模型特征个数,
,
为模型预测误差的方差的估计值,即残差的方差。
- AIC赤池信息量准则:
- BIC贝叶斯信息量准则:
- R-Squared:
- Adj. R-Squared:
惩罚强度:BIC最重,AIC最常用
特征选择:
【最优子集选择】【向前逐步选择】
【压缩估计(正则化)】——Embedd类型
略
Lasso回归优化(LARS算法)
【PCA压缩 】
Goal:降噪、寻找数据内部本质结构特征
思路:最大投影方差
!!!:PCA也可利用核函数,核函数选择:
一般用线性核和高斯核,也就是Linear核与RBF核
需要注意的是需要对数据归一化处理,很多使用者忘了这个小细节
然后一般情况下RBF效果是不会差于Linear
但是时间上RBF会耗费更多,其他同学也解释过了
下面是吴恩达的见解:
1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
- 交叉验证(直接估计):
- 留一法
- K-Fold
三、模型参数
- 参数:基于dataset(准确来说,对于training set)对模型需要估计的parameter,例如回归问题中的
。
- 超参数:在训练模型前需要对模型确定的数值,例如ridge regression和lasso regression中的正则项参数
,或者是random forest中的树深度、树棵树、learning rate、subsampling rate等。超参数则是在validation set上可以进行选择
超参数调整方法:
1、网格搜索GridSearchCV():对不同超参数的不同取值做笛卡尔积,在validation set上进行遍历
2、随机搜索RandomizedSearchCV():
3、贝叶斯优化:https://www.cnblogs.com/marsggbo/p/9866764.html