一、model selection
1、model selection中,对data考虑的几个要点:
1)sample数量;
2)feature dimentionality;
3)sample的覆盖度;
4)model用于哪个领域:NLP or CV;
二、交叉验证
1、交叉验证集做参数/模型选择;
2、测试集只做模型效果评估;
三、learning curve在工业界应用非常少,一般通过计算bias(training) - variance(validation)来判断是否overfitting;
- learning curve
- overfitting and underfitting处理方式
四、Bad Case
五、模型融合(model ensemble)
- bagging
如:随机森林
- stacking
将data分为train data和test data,将train data分为train_1 data和train_2 data。
利用train_1 data训练第一层的classifier1;
将train_2 data喂给classifier1,并将output作为train_2 data的new feature,用于训练第二层的classifier2。
在进行prediction时,将sample先输入classifier1,得到new feature,然后再将new feature作为classifier2的input,预测sample的label or value。
注意,stacking model容易overfitting,可以用较复杂模型形成new feature,用较简单模型进行prediction,这样,可以加快预测速度,这种模式可以应用于“广告点击”中???
详细解读Stacking模型:数据挖掘竞赛利器-Stacking和Blending方式 - Boost:以串行方式,集合弱分类器,不断优化model的bias;
1)AdaBoost:对错分类样本重新分配权重,然后利用弱分类器优化这些sample的分类结果;
2)GBDT:利用弱分类器对“残差”进行不断优化;这里的“残差”指的是:y-yhat(loss function的一阶导);
参考博文:
梯度提升树(GBDT)原理小结
机器学习算法GBDT的面试要点总结-上篇
3)xGBDT:与GBDT相比,xGBDT同时用到了“一阶导”和“二阶导”;xGBDT中tree为regression tree?
3.1)xGBDT思路说明:
首先、xGBDT也是boost方法的一种,在每一轮迭代中,获得一棵“tree”,最后将获得的所有tree相加,作为prediction value;
其次、xGBDT与GBDT不同之处在于:1)他使用“泰勒展开”,将原来的loss function转变为:l’f+l’'f2的形式,使得loss function的最小值可以通过求“二次函数”的顶点坐标: f=-l’/2l’'求得;2)xGBDT中定义了一个regularization,其包含了对“tree-depth”以及“tree-leaf-weight”的限制;(xGBDT中的tree是regression tree)。
第三、在得到一个objective function = loss function + regularization后,在构建每一棵tree时,是否要将tree某一node进行split,可以根据split前后,objective function的差值来进行决定。如果split后的objective function > split 前的objective function,则,不split。
以上即为xGBDT的key points。
3.2)以下为xGBDT推导过程:
参考博文:
机器学习(四)— 从gbdt到xgboost
GBDT和XGboost介绍 - Bagging 和 Boosting的区别