算法分类
学习方法
- 监督式学习
- 非监督式学习
- 半监督式学习
- 强化学习
懒惰学习/急切学习
- 懒惰学习(lazy learning)
训练阶段仅仅是把训练样本保存起来,训练时间开销为0,待收到测试样本后再进行处理。KNN算法是“懒惰学习”的著名代表。 - 急切学习(eager learning)
在训练阶段就对样本进行学习处理的方法,称为“急切学习”。几乎所有的机器学习算法都可以认为是eager method,比如线性回归、逻辑回归、ANN、SVM、决策树、relation rule, etc., 因为他们都是根据训练数据集建立好模型从而对新数据进行预测的。
算法类似性
- 决策树学习
根据数据的属性采用树状结构建立决策模型。决策树模型常常用来解决分类和回归问题。常见的算法包括 CART (Classification And Regression Tree)、ID3、C4.5、随机森林 (Random Forest) 等。 - 回归算法
试图采用对误差的衡量来探索变量之间的关系的一类算法。常见的回归算法包括最小二乘法 (Least Square)、逻辑回归 (Logistic Regression)、逐步式回归 (Stepwise Regression) 等。 - 聚类算法
通常按照中心点或者分层的方式对输入数据进行归并。所有的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 K-Means 算法以及期望最大化算法 (Expectation Maximization) 等。 - 人工神经网络
模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络算法包括感知器神经网络 (Perceptron Neural Network) 、反向传递 (Back Propagation) 和深度学习等。 - 集成算法
用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括 Boosting、Bagging、AdaBoost、随机森林 (Random Forest) 等。
决策树
参考:https://www.jianshu.com/p/fb97b21aeb1d
决策树是附加概率结果的一个树状的决策图,是直观的运用统计概率分析的图法。机器学习中决策树是一个预测模型,它表示对象属性和对象值之间的一种映射,树中的每一个节点表示对象属性的判断条件,其分支表示符合节点条件的对象。树的叶子节点表示对象所属的预测结果。
预测是否具有偿还贷款的能力:
基本知识
- 信息增益
信息熵表示的是不确定度。均匀分布时,不确定度最大,此时熵就最大。当选择某个特征对数据集进行分类时,分类后的数据集信息熵会比分类前的小,其差值表示为信息增益。信息增益可以衡量某个特征对分类结果的影响大小。 - 基尼系数
基尼指数反应了从数据集中随机抽取两个样本,其类标不一致的概率。
决策树算法
决策树的损失函数通常是正则化的极大似然函数,学习的策略是以损失函数为目标函数的最小化。
所以决策树的本质和其他机器学习模型是一致的,有一个损失函数,然后去优化这个函数;然而,区别就在于如何优化。
决策树采用启发式算法
来近似求解最优化问题,得到的是次最优的结果。
该启发式算法可分为三步:
- 特征选择
- 模型生成
- 决策树的剪枝
决策树学习算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割。
选择最优特征要根据特征的分类能力
,特征分类能力的衡量通常采用信息增益或信息增益比。
决策树学习常用的算法主要有以下三种:
ID3算法,C4.5算法,CART算法。
算法总结:
ID3算法/C4.5算法/CART算法。
ID3算法和C4.5算法用于生成分类树,区别主要在于选取特征的依据,前者是信息增益
,后者是信息增益比
。
CART算法可以生成分类树和回归树,分类树使用基尼指数
选取特征,并且不用提前确定α值,而是在剪枝的同时找到最优的α值.
集成学习
Bagging
bagging:bootstrap aggregating 的缩写。
bagging是一种并行式集成学习方法,可用于二分类,多分类,回归等任务。
基本流程
- 对一个包含 m 个样本的数据集,有放回地进行 m 次随机采样,这样得到具有 m 个样本的采样集。
- 取 T 个这样的采样集。
- 每个采样集训练一个基学习器。
- 结合:分类任务,使用简单投票法。回归任务,使用简单平均法。
有放回抽样的好处?
这种有放回抽样会有 63.2% 的样本出现在采样集中,而剩下的 36.8% 样本可以作为验证集对模型的泛化性能进行包外估计。
当基学习器是决策树时,可以用包外样本来辅助剪枝,
还可以用于估计决策树中各结点的后验概率来辅助对零训练样本结点的处理。
基学习器是神经网络时,用包外样本来辅助早期停止来减小过拟合。
Bagging特点
Bagging 主要关注降低方差,是要降低过拟合,而不会降低偏差,因此最好不要用高偏差的模型。
在不剪枝决策树,神经网络等易受样本扰动的学习器上效用更为明显。
例如当基学习器是决策树时,Bagging 是并行的生成多个决策树,此时可以不做剪枝,这样每个都是强学习器,就会有过拟合的问题,但是多个学习器组合在一起,可以降低过拟合。
随机森林
随机森林和Bagging同属于弱依赖学习器,前面已经介绍了Bagging,随机森林是进阶版Bagging。
随机森林的思想仍然是Bagging,它使用CART决策树作为弱学习器,而RF进阶在于对决策树的建立做了改进。对于普通的决策树,在节点上所有的n个样本特征中选择最优的特征来做决策树的左右子树划分,但是RF通过随机选择节点上的部分样本特征$n_{sub}$,再在这些随机选择的$n_{sub}$个样本特征中选择最优的特征做决策树的左右子树划分,这样做进一步加强了模型的泛化能力。
针对结合策略,如果是分类问题,则采用简单投票法;如果是回归问题,则采用算术平均法。
Bagging 和 Boosting 的区别
- 样本选择:
Bagging 的训练集是在原始集中有放回选取的,各轮训练集之间是独立的,每个样例的权重相等;
Boosting 的训练集不变,只是每个样例在分类器中的权重发生变化,错误的样本会得到更大的重视; - Bagging 的预测函数没有权重之分;Boosting 的预测函数是有权重之分,效果好的函数权重大;
- Bagging 的各个预测函数并行产生,容易 map-reduce ,Boosting 的预测是顺序产生,后一个模型参数需要前一轮模型的结果。