首页 > 代码库 > 模型优化

模型优化

数据清洗

不可信样本丢弃

缺省值极多的字段考虑不用

数据采样

下/上采样

保证样本均衡

特征处理

数值型

类别型

时间型

文本型

统计型

组合特征

特征选择

过滤型

sklearn.feature_selection.SelectKBest

包裹型

sklearn.feature_selection.RFE

嵌入型

feature_selection.SelectFromModel

Linear model, L1正则

模型选择

1.样本量很小的情况下,可以考虑直接用一些统计规则,而不用使用模型,反而可控,可解释性强

2. 样本量大,机器学习模型,y是不是类别变量(分类,回归),是否有标签(有监督,无监督)

3.文本数据可能考虑TF-IDF, SVM, 朴素贝叶斯;图像可能考虑deep learning

超参数的选择

交叉验证

K 折交叉验证,用于超参数的选择

正则化其实是约束你的样本空间,不会让你去你和一些极端的离群点

交叉验证选取超参数

技术分享

模型状态

欠拟合

过拟合

随着样本的增长,训练集准确率不断下降,验证集准确率不断上升。

如果训练集的曲线的准确率比较低,那么模型就是欠拟合

如果训练集的曲线和验证集曲线中间的距离很大,那么模型就是过拟合

技术分享

不同模型状态处理

过拟合

找更多的数据学习

增大正则化系数

减少特征个数(不是太推荐)

欠拟合

找到更多系数

减小正则化系数

线性模型的权重分析

过线性或者线性kernel的model:Linear regression , logistic regression, linearSVM

对于权重值较大的特征,你可能会去做更细划分,比如如果城市这个特征的权重值比较大,你可能会去再把城市下面区的特征再拿出来。或者将两个权重较大的特征进行组合,比如性别和城市组合。

Bad case分析

针对分类问题:哪些训练样本分错了?我们哪部分特征使得它做了这个判定?这些badcase有没有共性,是否有还没有挖掘的特性。

模型融合

什么是模型融合?融合学习是一组个体学习器的组合,如果这些个体学习器都是同质的,比如决策树,再用bagging,或者是gbdt这种递进学习的情况,成为基础学习器(base learner) ,如果这些个体学习器是异质的,成为组合学习器。

可以更加接近真实值

技术分享

1.群众的力量是伟大的,集体智慧是惊人的

bagging \Random forest

缓解过拟合,多给他点题,别让他死记硬背;多找几个同学做题,综合一下他们的答案

技术分享

2.站在巨人的肩膀上能看的更远

模型stacking,多个模型的输出,重新作为输入,如果是分类,可以取不同的权重后,再用符号函数,求得最后的分类。

技术分享

3.一万小时定律

adaboost:重复迭代和训练,每次分配更错样本更高的权重,最简单分类器叠加

每个简单分类器给予不同的权重

技术分享

逐步增强树/gradient boosting tree

与标准答案做一个差值,绿色点为差值情况,学习差距,不断的学习差值

技术分享

 

技术分享

技术分享

 

模型优化