Appearance
机器学习(ML )
概率近似正确 - PAC(Probably Approximately Correct)
最重要理论模型 :
其中:
NFL定理: 具体问题, 具体分析.
没有最好的算法,只有相对较优的算法
( 马哲贯彻人生🙃 )
误差
- Underfitting(欠拟合)
- Overfitting(过拟合)
三个关键问题
1. 评估方法
留出法(hold-out)
将data切分为两个set,训练集和测试集(0.8:0.2 ...)
- 保证数据分布一致性(分层采样)
- 多次重复划分(百次测试求均值,去除切分数据的影响)
- 最终预测模型为全数据训练
-fold交叉验证法(cross calidation) 进行
次划分,去除划分扰动,再根据 划分 data后,循环训练 这 个集合 - 留一法(
, 则得到 level-one-out, LOO )
- 留一法(
自助法(bootstrap)
基于可重复采样, 约有36.8%的数据不会被抽中
- 训练集与原样本集相同
- 包外估计(out-of-bag estimation)
参数
- 算法的参数: 一般由人设定,也称为 “超参数”
- 模型的参数: 一般由学习确定
2. 性能度量
回归任务
常用均方误差Err :
分类任务
- 错误率Err:
- 精度Acc:
- 查准率:
- 查全率:
度量: 度量:
3. 比较检验
统计假设检验为学习器性能比较提供了重要依据
- 交叉验证t检验(基于成对t检验)
- k-fold交叉检验;
交叉验证
- k-fold交叉检验;
- McNemar检验(基于列联表,卡方检验)
线性模型
1. 线性回归
- 离散变量
- 有序: 0,1,2
- 无序: 001,010,100 (k维向量)
令均方误差最小化:
对
- 最小二乘法估计
令导数为0,得到闭式(closed-form)解:
2. 多元(multi-variate)线性回归
后面我们对观测集,采用下面记号:
其中
- 最小二乘估计
令
对
- 若
满秩或正定, 则 - 若
不满秩, 则可以解出多个 - 设置归纳偏好或表达为引入正则化
3. 广义线性模型
一般形式:
例如对于

4. 对率回归:
对数几率回归(logistic regression) 简称对率回归
:几率(odds) 即 log odds logit
对于线性回归模型产生的实值输出
理想函数

相比之下,替代函数的性质更好
- 对率函数(logistic function)与逻辑没有任何关系
- 实值函数,在
连续 - 用回归模型做分类
因此对
- 无需事先进行假设数据分布
- 可以得到“类别”的近似概率预测
- 可直接应用现有数值优化算法求取最优解
通过极大似然法求解
不能通过求梯度为零得极值点,因为目标函数,并不是凸函数
即
简化之后可得
由于
那么
合并上述讨论可得函数
一般情况下,到此处使用梯度下降法求解,更适合计算机迭代,可以使用二阶导得到,但并不通用。
- 梯度下降法 如果矩阵不是满秩,没有逆矩阵,就无法使用最小二乘法。
5. 线性鉴别分析
Linear Discriminant Analysis
目标:最大化广义瑞利商
尽可能的最小化同类之间的距离,最大化异类之间的距离
于是 可求解
类内散度矩阵(within-class scatter matrix)
类间散度矩阵(between-class scatter matrix)
因此就有:
其等价于
由拉格朗日子乘法
令
易得
注意到求解的
于是可令
通常情况下进行奇异值分解更加快速便捷
然后可得:
6. 多分类问题
现实中常使用多分类来解决分类问题
OvO & OvR
对于
或者拆分成非均衡的二分类,即一对其余(One v.s. Rest),仅需
虽然OvO进行多次分类,但OvR每个分类器都使用全部的样例,所以两者在多数情况下时间开销相近
MvM
多对多分类(Many v.s. Many)
OvO & OvR显然是MvM的特例
针对多对多的分类问题,常采用纠错输出码(error correction output codes ECOC)
ECOC
ECOC工作过程主要分为编码和解码两步
- 编码 对
个类别做 次划分,每次划分,将一部分类别化为正类,一部分化为反类,从而形成一个二分类训练机;这样一共有 个训练集,可以训练出 个分类器 - 解码
个分类器分别对样本进行预测,这些预测标记组成一个编码,将这个预测编码与每个类别各自比较,返回其中距离最小的类别作为最终预测结果
7. 类别不平衡问题
之前的分类学习方法都有一个共同基本假设,不同类别的训练样例数目 相当
如果不同类别的训练样例数目稍稍不同,通常影响不大
但若是差别很大,会对学习过程造成困扰,例如十分极端的训练样例
模型的训练时,只需一直返回多数方即可达到
类别不平衡 就是指在分类任务中不同类别的训练样例数目差别较大的情况。
在拿到新的数据进行预测时,预测结果的决策,需要依靠所训练出的分类规则
对于线性模型,当进行决策时,预测结果为正类,就是根据其预测为正类的概率大于负类的概率,换言之:
然而在类别不平衡的条件下,训练出的分类器并不是这样,如正类小于负类的情况下,当预测的符合
因此在类别不平衡学习中,对于分类器的决策执行时,可以对其进行“再缩放”
即
但实际上实现起来却很难,因为我们认为的训练集是总体的无偏采样,能够代表总体概率。但实际上训练集数据抽取是随机的,它的偏差可能很大。
- 欠(下)采样——减少多的一方
- 过(上)采样——增加少的一方
- 阈值移动——采用缩放使之平衡
决策树模型
分而治之,对属性进行判断从而划分
停止条件
- 当前结点包含的样本全属于同一类别,无需划分
- 当前节点属性集为空,或者所有样本在属性上取值相同,无法划分
- 当前结点包含的样本集为空,不能划分
决策树的核心在于,使用什么划分方式,能使得属性得到最优划分 决策树是从信息论的基础上发展而来
信息熵
Entropy 用于度量信息的混乱和纯净程度
在集合
信息增益
信息增益是进行划分后信息熵减小所获得的收益量
对离散属性a:
增益率
当编号考虑为属性,那么上述信息增益的划分方式泛化会非常糟糕,因此引入一个分支数目作为分母,抵消分支数目过多的问题
基尼指数(Gini index)
属性a的基尼指数:
剪枝
pruning 用于对抗过拟合
- 预剪(pre-pruning):预先设置条件,防止生长
- 后剪枝(post-pruning):生成后再剪枝
缺失值处理
直接丢弃的方式在高维度数据时十分浪费
- 如何进行划分属性选择
- 给定划分属性,若样本在该属性值缺失,如何划分
基本思路:样本赋权,权重划分
神经网络
简单的神经元模型:激活信号达到反应阈值,就产生输出。
理想的映射法则是间断的
, 然而更长用的是其替代函数:Sigmoid函数
多层网络:包含隐层的网络。前馈网络:神经元之间不存在同层连接、跨层连接。
隐层和输出层神经元也称为 功能单元
设置隐层数目需要进行试错
- 万有逼近性 说明了 神经网络的可行性
BP算法
误差逆传播算法(BackPropagation),使用广义感知机学习规则:
基于梯度下降的策略,以负方向对参数进行调整
为方便讨论,做如下规定: 给定训练集
第
则共需学习的参数数目为
误差导致
注意到
对Sigmoid函数有
令
于是有
类似地
其它算法
- RBF算法
- ART网络
- SOM网络
- 级联相关网络
- Elman网络
- Boltzmann机