Sklearn机器学习第十五天|机器学习算法原理
第3章 机器学习算法原理
3.1 感知机算法
感知机算法:找到一条直线把二分类问题分开
3.1.1 决策函数
3.1.1.1 sign函数
3.1.2 损失函数
3.1.3 目标函数
3.1.4 目标函数优化算法
3.2 线性回归
3.2.1 决策函数
3.2.2 目标函数
3.2.3 目标函数优化问题
3.2 逻辑回归简介
逻辑回归是解决分类问题!
3.2.1 sigmoid函数
3.3.2 决策函数
把分类问题变成概率问题
3.3.3 损失函数
3.3.4 目标函数
3.3.5 目标函数优化问题
概率越大越好,所以用梯度上升法。
3.4 朴素贝叶斯法简介
3.4.1 贝叶斯公式
3.4.2 朴素贝叶斯法
3.5 K近邻算法简介
3.5.1 距离度量工具
3.6 决策树简介
3.7 支持向量机简介
3.7.1 目标函数优化问题
3.8 K均值聚类算法简介
一般作为中间算法,处理数据
3.9 集成学习简介
3.9.1 个人学习器
上一节我们讲到,构造强学习器的所有个体学习器中,个体学习器可以是相同类型的也可以是不同类型的,对于相同类型的个体学习器,这样的集成是同质(homoganeous)的,例如决策树集成中全是决策树,神经网络集成中全是神经网络;对于不同类型的个体学习器,这样的集成是异质(hetergenous)的,例如某个集成中既含有决策树,又含有神经网络。
目前最流行的是同质集成,在同质集成中,使用最多的模型是CART决策树和神经网络,并且个体学习器在同质集成中也被称为弱学习器(weak learner)。按照同质弱学习器之间是否存在依赖关系可以将同质集成分类两类:第一个是弱学习器之间存在强依赖关系,一系列弱学习器基本都需要串行生成,代表算法是Boosting系列算法;第二个是弱学习器之间没有较强的依赖关系,一系列弱学习器可以并行生成,代表算法是Bagging和随机森林(random forest)系列算法。
3.9.2 Boosting系列算法
Boosting是一种可将弱学习器提升为强学习器的算法。它的工作机制为:先从初始训练集中训练出一个弱学习器,再根据弱学习器的表现对训练样本分布进行调整,使得先前弱学习器训练错误的样本权重变高,即让错误样本在之后的弱学习器中受到更多关注,然后基于调整后的样本分布来训练下一个弱学习器。
不断重复上述过程,直到弱学习器数达到事先指定的数目T,最终通过集合策略整合这T个弱学习器,得到最终的强学习器。
Boosting系列算法中最著名的算法有AdaBoost算法和提升树(boosting tree)系列算法,提升树系列算法中应用最广泛的是梯度提升树(gradient boosting tree)。
Boosting由于每一个弱学习器都基于上一个弱学习器,因此它的偏差较小,即模型拟合能力较强,但是模型泛化能力会稍差,即方差偏大,而Boosating则是需要选择一个能减小方差的学习器,一般选择较简单模型,如选择深度很浅的决策树。
3.9.3 Bagging系列算法
Boosting的弱学习器之间是有依赖关系的,而Bagging的弱学习器之间是没有依赖关系的,因此它的弱学习器是并行生成。
Bagging的弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们可以通过自主采样法(bootstrap sampling)得到T个采样集,然后对于这T个采样集独立的训练出T个弱学习器,之后我们通过某种结合策略将这T个弱学习器构造成一个强学习器。
Bagging系列算法中最著名的算法有随机森林,但是随机森林可以说是一个进阶版的Bagging算法,虽然随机森林的弱学习器都是决策树,但是随机森林在Baggin的样本随机采样的基础上,又进行了特征的随机选择。
Bagging由于通过随机采样获得数据,因此它的方差较小,即模型泛化能力较强,但是模型拟合能力较弱,即偏差偏大,而Bagging则是需要选择一个能减小偏差的学习器,一般选择较复杂模型,如选择深度很深的决策树或不剪枝的决策树。
3.10 降维算法简介
3.10.1 维数灾难和降维
对于高维数据,会出现数据样本稀疏、距离计算困难等问题。尤其是在KNN算法中这种问题会被放大,而其他的机器学习算法也会因为高维数据对训练模型造成极大的障碍,这种问题一般被称为维数灾难(curse of dimensionality)。
解决维数灾难最常用的方法是降维(dimension reduction),即通过某种数学变换将原始高维特征空间转变为一个低维子空间,在这个子空间中样本密度大幅提高,距离计算也变得更容易。
如上图所示,绿点即原始高维空间中的样本点,红点即我们降维后的样本点。由于图中的高维是二维,低维是一维,所以样本在低维空间是一条直线。
接下来我们的目标就是聊一聊如何做到把高维空间样本点映射到低维空间,即各种降维算法。
3.10.2 主成分分析
主成分分析(principal component analvsis,PCA)是最常用的一种降维方法,我们已经利用“维数灾难和降维图例”解释了降维的过程,PCA的降维过程则是尽可能的使用数据最主要的特征来代表数据原有的所有特征。但是为什么使用PCA降维是上图的红点组成的线而不是蓝线呢?这里就需要说到我们PCA的两个条件了。
对于“维数灾难和降维图例"中的红线和蓝线我们可以把它看成一个超平面S,理论上红线和蓝线构成的超平面都可以做到对样本特征的降维,但是一般我们希望这种能够做到降维的超平面满足以下两个条件
- 最近重构性:样本点到这个超平面的距离都足够近
- 最大可分性:样本点到这个超平面上的投影尽可能分开
基于最近重构性和最大可分性,就可以得到主成分分析的两种等价推导,也可以得出为什么红线是更合理的超平面,
第三部分小结
本章主要是带大家对传统机器学习的算法有一个大概的了解,由于神经网络可以理解成多个感知机组成的算法,此处不多介绍。后期进阶课程将会涉及神经网络以及深度学习。