转自july算法班:
模型的状态分为过拟合和欠拟合
过拟合(overfitting/high variance) 高波动性
欠拟合(underfitting/high bias) 高偏差
比如给出一些样本点,需要在上面画画,第一张图毫无规律可寻,称为欠拟合。而中间图找出了一些样本点之间的关联性。最后一张图根据样本点画出了一只猫。我们称为过拟合。可以这样想,如果这些点只能画出猫是不是局限了我们想象力呢?难道不能画出一只仰头的兔子来吗?
所以我们要寻找的规律不是一种特殊的规律,而是一种普适的一般性的规律,它既对已知数据有较好的拟合对未知数据也没有较大的偏差性。
---模型状态验证工具:学习曲线
---不同模型状态的处理
---过拟合,找更多的数据来学习
---增大正则化系数
---减少特征个数(不太推荐)
注意:不要以为降维就可以解决过拟合的问题
----2. 欠拟合
-----找到更多特征
-----减小正则化系数
---线性模型的权重分析
----1.线性或者线性kernel的model
---Linear Regression
---Logistic Regression
---Linear SVM
------2. 对权重绝对值高/低的特征
---做更细化的工作
----特征组合
-----优化3之Bad-Case分析
1. 分类问题
----哪些样本分错了
----哪部分特征使得它分错了
----这些bad cases有没有共性?
-----是否还有没有挖掘出的特征
2. 回归问题
-----哪些样本预测结果差距大,为什么
------优化4之模型融合
1. 集体智慧
Bagging
随机森林
2. 一万小时定律
Adaboost(小学-初中-高中-大学-(硕士)-(博士))
梯度提升树(GBT)
Bagging
1. 模型很多时候效果不好的原因是因为过拟合
2. 如何缓解?
--每次少给一点样本集
---找不同的模型来做,然后综合一下答案(货比三家)
--算法:
1. 不用全部的数据集,每次有放回的抽取一个子集训练模型【可以降低噪声点对结果的影响】
2. 分类:用这些模型结果做一个vote
3. 回归:对这些模型的结果取平均
--用不同的算法:
用这些结果做vote或求平均
----AdaBoost
1.考得不好的原因?
---不够努力:重复迭代和训练
---时间分配要合理,要多做之前练习错的题:每次分配给分错的样本更高的权重
--不聪明,但是脚踏实地:最简单的分类器的叠加
有可能会过拟合
解决:学习的时候不学所有的样本集和特征。减少树的深度
对错误值和噪声敏感
回归问题:GDT(梯度提升树)
第二张图中所有绿色的点是红色的点对于粗糙的模型作差(残差)得到
不断地重复上述过程