1 机器学习算法分类:
监督学习(分类(输出离散),回归(输出连续));
非监督学习(聚类);
强化学习
2 No Free Lunch 定理
任意两个机器学习算法的期望性能都可能相同。(不管一个有多智能,另一个有多笨拙)
寓意:要谈论算法的相对优劣,必须要针对具体的学习问题,学习算法自身的归纳偏好与问题相匹配往往会起到决定性作用。
3 训练集和验证集的划分
留出法:
数据集 = 训练集 + 验证集
训练集 ^ 验证集 = 空
一般2/3-4/5为训练集,其余为验证集。
交叉验证法:
将数据集D分为K个互斥子集,每个子集均尽可能保持数据分布的一致性,随意取一个子集就可以作为验证集。
自举法:
4 过拟合
训练次数过多容易过拟合,就是说训练样本学的太好了,把训练集自身的一些特点也当做了所有数据共有的性质来学习。过拟合会导致模型泛化性变差,可以通过剪枝的方式来处理。
5 剪枝
剪枝分为预剪枝和后剪枝,预剪枝就是依据信息增益准则,通过对比剪枝前后验证集的精度决定要不要剪枝,预剪枝降低了过拟合的风险,减少了训练开销,但是会导致泛化性能下降,带来欠拟合的风险。但是在其基础上进行后续划分会带来性能显著提高。
后剪枝基于生成的完整决策树,之后通过对比剪枝前后验证集的精度决定要不要剪枝,后剪枝欠拟合风险小,泛化性能比较好,但是训练时间开销 比较大。
6 决策树泛化性能
研究表明,信息增益,增益率,基尼指数等决策树的划分指标对决策树的尺寸影响大,对决策树的泛化性能影响不大,而剪枝合理的话,决策树性能会提高25%
7 神经网络
神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,他的组织能够模拟生物神经系统对真实世界物体做交互反应。
8 BP算法过拟合问题缓解办法
(1)早一点停止训练
将数据集分为训练集和验证集,训练集用来计算梯度、权重、阈值,验证集用来估计误差,当训练集误差降低但验证集误差 升高的时候就停止训练,
(2)正则化
在误差目标函数中增加一个用来描述网络复杂度的项,例如:增加权重和阈值的平方项,训练过程将会偏好比较小的连接权重,使得网络输出更加平滑,对过拟合有所缓解。