本文主要参考 李航·《统计学习方法》,围绕统计学习的过程来展开,分红五个部分:综述、模型、策略、算法、模型评估和选择。方便小白对机器学习流程有个总体的了解。web
例子: 用 房屋价格预测的例子更好理解这一个过程。
真实房价
与房屋面积
、房间数量
等特征有关。如今要求咱们建模实现房屋价格的预测问题。算法
第一步,咱们应该先肯定假设空间。机器学习
能够用线性回归模型 svg
也能够用多项式回归模型拟合曲线: 。函数
则假设空间为:
性能
其实,假设空间的就是你要选择什么模型去解决一个问题,从大方向上说,你能够选择线性模型,也能够多项式回归模型,选择了一个模型后还要继续作假设,探究在不一样特征数量下哪一个模型的性能更好。学习
第二步,肯定` 两个模型各自的学习的策略:测试
优化
选择算法分别求解 两个模型:atom
对于 : 能够采用梯度降低算法求解最佳参数 ,获得最优模型: .
相似的,获得对 的最优模型:
进行模型评估和选择:对各个模型进行评估,最终选择最优模型
用 进行预测或分析。
监督学习有两种分法,一种把监督学习分红生成学习和判别学习;另外一种把监督学习分红分类问题、标注问题和回归问题。
生成方法由数据学习获得联合几率分布 ,而后利用条件几率公式生成条件几率分布 ,做为预测的模型,所以称为生成方法。
判别方法:由数据直接学习决策函数
或条件几率
- 典型的模型有:
近邻法、感知机、决策树、逻辑回归算法、最大熵模型、支持向量机、提高方法和条件随机场。
- 模型特色:学习准确率每每比较高。
监督学习中,当输出变量Y的取值是有限个离散值时,预测问题便成为分类问题。这时的输入变量能够是离散的,也能够是连续的。
评价一个分类器主要有三个指标精确率P、召回率R和精确率与召回率的调和均值F1值。
精确率P的定义:
标注问题的例子就是信息提取问题中,给一个句子的每个词进行 标注。
标注问题经常使用的统计统计学习方法:隐马儿可夫模型、条件随机场。
标注问题在信息抽取、天然语言处理等领域有不少应用。
在监督学习中,模型表示输入到输出的一种映射关系,其形式能够是条件几率型P(Y|X),也能够是决策函数型Y = f(x).
模型可能有不少个,不一样模型复杂度不一样,解决问题的效果不一样。即便是同个线性模型,也会随着参数的个数不一样而致使最后的模型不一样。咱们能够先作不少模型假设,造成一个假设空间。
假设空间能够定义为决策函数Y = f(x) 的集合:
其中, 为参数向量, 称为参数空间。
假设空间也能够定义为一个条件几率P(Y | X)的集合:
其中, 为参数向量, 称为参数空间。
例如:
能够用一次线性模型拟合曲线 。
也能够用二次模型拟合曲线: 。
则假设空间为:
肯定了假设空间,统计学习接着考虑要用什么样准则去选择假设空间中各个决策函数或者条件几率的最佳形式(最佳参数),这种准则就叫策略。
经典的策略就是最小化经验损失函数和最小化结构损失函数。那么首先应该引入损失函数的概念。
损失函数用于度量模型预测的错误程度。损失函数的值越小,模型就越好。损失函数记做 .
损失函数的种类主要有:
0-1损失函数
平方损失函数
指望损失(风险)函数:
指望损失(风险)函数定义为损失函数的均值。
实际中咱们没法知道(X,Y)遵循什么样联合分布P(X,Y), 因此指望损失并不可能精确计算。但当咱们的训练集容量不少时,能够能用经验损失来估计指望损失。
经验损失(风险)函数:模型
关于训练集的平均损失称为经验损失。
假设给定一个包含N个数据的训练集:
`
那么数据集的经验损失或经验风险为:
`
当训练集的个数N趋于无穷时,指望损失的等于经验损失,经验损失能够当作是对指望损失的估计
结构损失函数:当样本容量很大时,经验损失最小化能够保证很好的学习效果,由于样本容量N趋于无穷时,经验损失等于指望损失。可是当样本容量比较小时,很容易因为过拟合而致使预测结果不理想。为了防止过拟合,能够在经验损失的基础上加上一个正则化项,也叫惩罚项。
正则化项 与决策函数 的复杂度有关。模型 越复杂,正则化项 就越大。 为调节系数。正则化项能够是模型参数向量的范数.
例如,在回归问题中,损失函数时平方损失,正则化项能够是参数向量的 范数:
正则化项能够是参数向量的$L_1$
范数:
第一项经验风险比较小的模型可能比较复杂,拟合效果很好,这时由于模型比较复杂,所以第二项比较大。这样,正则化后就能够选择出经验风险和模型复杂度同时较小的模型。
上面介绍了经验损失、结构损失的概念,而咱们的目标时最小化经验损失或结构损失,把监督问题转化为最优化问题。这时的经验或结构损失函数就是最优化的目标函数。
最后,根据策略,接着考虑要什么算法来实现策略,求解最优模型.例如在线性回归问题中用梯度降低算法最小化平方损失函数,从而求解w最佳参数,从而获得了最佳模型。
经常使用的求解模型算法有:
1. 牛顿法
2. 梯度降低法
3. 正规方程组
4. …
通过算法的运算,如今咱们已经求解了假设空间中全部的模型,那么假设空间中到底哪一个模型时最好的呢?这须要对假设空间中的每个模型进行模型评估,最后选择一种最优模型,称为模型选择。
训练出来的模型性能的好坏,主要取决于训练模型对未知数据是否有较好预测能力。咱们把这种能力称为泛化能力。泛化能力能够由测试偏差判断,也能够由泛化偏差上界评估。并且泛化能力很大程度上收到模型的过拟合程度的影响。
测试偏差:定义为测试数据集的经验(风险)损失。
泛化偏差上界:定义为测试数据集的指望(风险)损失(也就是泛化偏差)的最大值。
能够看到,不等式左边 是泛化偏差,右端为泛化偏差上界。在泛化偏差中,第一项是训练偏差,训练偏差越小,泛化偏差也越小。在第二项中 是样本数目N的减函数,同时是假设空间数目d的增函数,空间 的数目d越大,泛化偏差上界就越大。
由此,若是测试数据集的数目N’比较小,泛化偏差上界来告诉咱们能够根据经验偏差 、训练样本数目N和假设空间数目d来评估模型的泛化能力。
典型的模型选择的方法有特征选择、特征过滤、正则化、交叉验证等。
- 交叉验证:
- 简单交叉验证:数据集分红测试集和训练集,而后训练集在各类条件下训练模型,从而获得不一样模型。在测试集评测各类偏差,选出测试偏差最小的一个模型。
- S折交叉验证:将数据集随机划分为S个不一样的子集,S-1个用于训练,剩下的用于测试;重复这一过程。
- 留一交叉验证:N个样本的数据集,且N比较小时,直接令S = N,那么每次只会留一个样本用于测试。
- 自助法:对数据集D进行N次有放回的采样获得D’,把没出如今D’的样本用于测试,出现过的样本用于训练(参考西瓜书p27)
- 正则化:在前面已经做了介绍。
特征选择:前面提到,不一样的参数个数w,会致使模型的复杂度不一样,而复杂的模型容易引发过拟合的问题。正则化的方法能够以使用保留全部参数w的方法来减小过拟合的风险。而特征选择能够经过减小一些无用的特征,也就是减小w的个数,从而减小模型的复杂度,下降过拟合的风险。*(参考吴恩达视频10)*
对于n 个特征来讲,特征子集的个数有2n 个,如何进行选择呢?可使用如下方法:
前向选择法(Forward Search):
1) 初始化特征子集为ℱ = Φ。
2) 对于不属于ℱ的每一个特征,计算添加该特征后模型精度的提高。
3) 选择提高最大的特征.
4) 重复第2 步和第3步,直到模型精度再也不上升为止。
后向选择法(Backward Search):
和前向选择法相似,每次删除对精度影响最不大的特征。
特征过滤:
上面的方法虽然能够达到较优的特征选择结果,可是因为其反复屡次调用模型训练算法,其计算量会至关的大,尤为在训练数据量比较大的时候。为了是特征选择更简便,可使用一种更简单的特征过滤方法。
过滤特征选择(Filter Feature Selection):
采用一种启发式的规则对特征进行评分, 选择评分较优的特征。
互信息(mutual information,MI)
就是一种可选的评分函数。互信息能够衡量特征
和类别标号
的相关性,从而选择出与类别标号
最相关的特征
。当
是离散型变量的时候,互信息 MI 的计算公式以下:
使用 进行衡量后,咱们获得了各个特征的评分,那么选择多少个特征可让模型的效果达到最好呢?标准的方法仍是采用交叉检验的方式进行选择。