机器学习算法

- 机器学习与规则学习的区别
- 机器学习算法解决的主要问题
- 有监督学习
- 无监督学习
- 半监督学习
- 强化学习
- 梯度下降法
- 超参数
- 网格搜索
- 随机搜索
- 交叉验证
- 线性回归与逻辑回归
- 决策树
- SVM
- KNN
- 朴素贝叶斯
机器学习算法
机器学习(包括深度学习分支)是研究“学习算法”的一门学问。所谓“学习”是指:
对于某类任务T和性能度量P,一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。

基于规则与机器学习算法的区别
什么时候使用机器学习算法?
机器学习算法的理性认识
- 目标函数f未知,学习算法无法得到一个完美的函数f
- 假设函数g逼近函数f,但是可能和函数f不同

分类和回归是预测问题的两种主要类型,占到80%-90%,分类的输出是离散的类别值,而回归
的输出是连续数值。
机器学习的分类
- 监督学习:利用已知类别的样本,训练学习得到一个最优模型,使其达到所要求性能,再利用这个训练所得模型,将所有的输入映射为相应的输出,对输出进行简单的判断。从而实现分类的目的,即可以对未知数据 进行分类。
- 无监督学习:对于没有标记的样本,学习算法直接对输入数据集进行建模,例如聚类,即“物以类聚,人以群分”。我们只需要把相似度高的东西放在一起,对于新来的样本,计算相似度后,按照相似程度进行归类就好。无监督学习是基于数据内在相似度进行分类。
- 半监督学习:试图让学习器自动地对大量未标记数据进行利用以辅助少量有标记数据进行学习。
- 强化学习:学习系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统如何去产生正确的动作。
监督学习-回归问题
回归:反映了样本数据集中样本的属性值的特性,通过函数表达样本映射的关系来发现属性值之间的依赖关系。重点是拟合样本点之间的趋势。
监督学习-分类问题
分类:分类问题属于有监督学习,通过分类模型,将样本数据集中的样本映射到某个给定的类别中。
无监督学习-聚类问题
聚类:通过聚类模型,将样本数据集中的样本分为几个类别,属于同一类别的样本相似性比较大。
强化学习
模型感知环境,做出行动,根据状态与奖惩做出调整和选择。
机器学习的整体流程

数据集
- 数据集∶在机器学习任务中使用的一组数据,其中的每一个数据称为一个样本。反映样本在某方面的表现或性质的事项或属性称为特征。
- 训练集:训练过程中使用的数据集,其中每个训练样本称为训练样本。从数据中学得模型的过程称为学习(训练)。
- 测试集∶学得模型后,使用其进行预测的过程称为测试,使用的数据集称为测试集,每个样本称为测试样本。
训练集和测试集不能有交集
数据处理的重要性
数据对于模型来说就是至关重要的,是模型能力的天花板,没有好的数据,就没有好的模型。
数据清理的工作量
大部分的机器学习模型所处理的都是特征,特征通常是输入变量所对应的可用于模型的数值表示。
大部分情况下,收集得到的数据需要经过预处理后才能够为算法所使用,预处理的操作主要包括以下几个部分:
·数据过滤
·处理数据缺失
·处理可能的异常、错误或者异常值·合并多个数据源数据
·数据汇总
“脏”数据的含义
真实的数据中通常会出现一些数据质量问题:
·不完整:数据中缺少属性或者包含一些确实的值。
·多噪音:数据包含错误的记录或者异常点。
·不一致:数据中存在矛盾的、有差异的记录。
数据的转换
对数据进行初步的预处理后,需要将其转换为一种适合机器学习模型的表示形式,以下是一些常见的数据转化的形式。
-
·在分类问题中,将类别数据编码成为对应的数值表示(哑编码)
-
·数值数据转换为类别数据以减少变量的值(对年龄分段)
-
·其他数据
·从文本数据中提取有用的数据(一般使用词袋法、TF-IDF或者word2vec)
·处理图像数据(颜色空间,灰度化,几何变化,haar特征等,图像增强) -
特征工程
·对特征进行归一化、标准化,以保证同一模型的不同输入变量的值域相同
·特征扩充:对现有变量进行组合或转换以生成新特征,比如平均数
特征选择的必要性
通常情况下,一个数据集当中存在很多种不同的特征,其中一些可能是多余的或者与我们要预测的值无关的。
特征选择技术的必要性体现在:
特征选择的方法
过滤法
嵌入法
模型构建项目整体流程
模型评估方法
-
泛化能力: 能否在实际的业务数据也能预测准确
-
可解释性 :预测的结果是否容易被解释
-
预测速率 :每一条数据的预测需要多长时间
-
可塑性 :实际业务过程中数据量可能很大,随着业务量增大,预测的速率是否仍然可以接受
-
模型的有效性
泛化能力:机器学习的目标是使学得的模型能够很好的适用于新的样本,而不是仅仅在训练样本上工作的很好,学得的模型适用于新样本的能力称为泛化能力,也称为鲁棒性。
误差:学习到的模型在样本上的预测结果与样本的真实结果之间的差。
-训练误差:模型在训练集上的误差。
·泛化误差:在新样本上的误差。显然,我们更希望得到泛化误差小的模型。
-----欠拟合:如果训练误差很大的现象。
-----过拟合:如果学得的模型的训练误差很小,而泛化能力较弱即泛化误差较大的现象。 -
模型的有效性(2)
模型的容量:指其拟合各种函数的能力,也称为模型的复杂度。
—容量适合于执行任务的复杂度和所提供训练数据的数量时,算法效果通常会最佳;
—容量不足的模型不能解决复杂任务,可能出现欠拟合;
—容量高的模型能够解决复杂的任务,但是其容量高于任务所需时,有可能会过拟合。
过拟合的原因–误差
最终预测的总误差=偏差2+方差+不可消解的误差
预测误差总的来说可以被拆解出两种主要的我们需要关注的子形式:
来源于“偏差”的误差
来源于“方差”的误差方差(Variance): 模型的预测结果在均值附近的偏移的幅度 ·来源于模型在训练集上对小波动的敏感性的误差 偏差(Bias):
·模型的预期(或平均)预测值与我们试图预测的正确值之间的差异。

理想状态下,我们想要选择一个模型,它既能准确地捕获训练数据中的规律,又能很好地概括不可见数据(即新数据)。但是通常我们不可能同时完成这两件事.
模型的复杂度与误差
随着模型复杂度上升的增加,训练误差逐渐减小。
同时,测试误差会随着复杂的增大而减小到某一点,继而反向增大,形成一条凸曲线。
机器学习的性能评估-回归
机器学习的性能评估-分类

术语:
P:正元组,感兴趣的主要类的元组。
N:负元组,其他元组。
TP:真正例,被分类器正确分类的正元组。
TN︰真负例,被分类器正确分类的负元组。
FP︰假正例,被错误地标记为正元组的负元组。
FN:假负例,被错误的标记为负元组的正元组。

机器学习重要方法
机器学习训练方法-梯度下降
梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,该方向为当前位置最快下降方向,梯度下降中越接近目标值,变化量越小,公式如下:


梯度下降容易陷入一个局部最低点而不是全局最低点。
SGD中,因为每次训练选取的样本是随机的,这本身就带来了不稳定性,会导致损失函数在下降到最低点的过程中,产生动荡甚至反向的位移。
BGD最稳定,但是过于消耗运算资源,MBGD是SGD与BGD平衡之后的方法。
模型中的参数与超参数
模型中不但有参数,还有超参数的存在。其目的是为了让模型能够学习到最佳的参数
—参数有模型自动学习
—超参数由人工手动设定

模型超参数是模型外部的配置
模型超参数常应用于估计模型参数的过程中。
模型超参数通常由实践者直接指定。模型超参数通常可以使用启发式方法来设置。
模型超参数通常根据给定的预测建模问题而调整。
常见的模型超参数
Lasso/Ridge回归当中的入
训练神经网络的学习速率,迭代次数,批次大小,激活函数,神经元的数量。
支持向量机的C超参数。
KNN中的K。
随机森林当中的树的棵数
超参数的搜索过程及方法
- 超参数搜索的一般过程
—1.将数据集粉彩训练集、测试集和验证集
—2.在训练集上根据模型的性能指标对模型参数进行优化
—3.在验证集上根据模型的性能指标对模型的超参数进行搜索
—4.步骤2和步骤3交替迭代进行,最终确定模型的参数和超参数,并在测试集中评价模型的优劣。 - 搜索算法
--------网络搜索网格搜索尝试穷举搜索所有可能的超参数组合形超参数值网格。
在实践中,人工指定的范围和步骤之间的值。
网格搜索是一种昂贵且耗时的方法。
这种方法在超参数数目相对较少的情况下工作良好。因此一般机器学习算法中可行,但在神经网络等情况下就行不通了(见深度学习部分)。
--------随机搜索
在超参数搜索空间较大的情况下,采用随机搜索,会优于网格搜索的效果
随机搜索实现了对超参数的随机搜索,其中每个设置都是从可能的参数值的分布中进行取样,试图找出最佳的超参数子集
注意:
·首先在一个粗范围内搜索,然后根据最佳结果出现的位置,缩小范围。
·某些超参数比其他的更加重要,随机搜索过程中会影响搜索的偏向。
--------启发式智能搜索
-------贝叶斯搜索
交叉验证
交叉验证:是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据进行分组,一部分作为训练集,另一部分作为验证集,首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以此来做为评价分类器的性能指标。
k-折交叉验证(K - CV ) :
将原始数据分成k组(一般是均分)。
将每个子集数据分别做一次验证集,其余的k –1组子集数据作为训练集,这样会得到k个模型。
用这k个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标。
注意:K折交叉验证的K值,也属于超参数
机器学习的常见算法
机器学习算法总览
线性回归(Linear regression)
线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
线性回归是一种有监督学习。


线性回归扩展-多项式回归
多项式回归,是线性回归的拓展,通常数据集的复杂度会超过用一条直线来拟合的可能性,也就是使用原始的线性回归模型会明显欠拟合。解决的办法就是使用多项式回归。

这里的n次方就是多项式回归维度(degree)
多项式回归仍然是线性回归的一种,是因为其非线性体现在特征的维度上,而其权重参数w之间的关系仍然是线性的。

正则项有助于减少过拟合,w值在样本空间中不能过大/过小,可以在目标函数之上增加一个平方和损失:

正则项(norm)︰这里这个正则项叫做L2-norm,这个使用这个损失函数的,线性回归也叫Ridge回归。

追加了绝对值损失的线性回归叫做Lasso回归。
加入正则相当于对之前的某些特征进行了增强和抑制。就是筛选了一部分特征,只用一部分特征来完成拟合,所以可以起到防止过拟合的一个效果。
逻辑回归
逻辑回归:逻辑回归模型是一种分类模型,用来解决分类问题。模型的定义:
其中w称为权重,b称为偏置,其中的wx+ b看成对x的线性函数。然后对比上面两个概率值,概率值大的就是x对应的类。
(Sigmoid激活函数)
逻辑回归与线性回归都是广义线性模型。逻辑回归在线性回归的基础上引入了非线性因素(sigmoid函数),并设定了阈值,因此可以处理二分类问题。
根据逻辑回归的模型函数,可以通过最大似然估计计算出逻辑回归的损失函数为:
其中w为权重参数,m为样本个数,x表示样本,y表示真实值(1或0)。同样可以通过梯度下降算法求得所有权重参数w的值。
逻辑回归扩展- Softmax函数
逻辑回归只能用于二分类问题,如果是多分类问题,我们通常使用Softmax函数。
Softmax回归是逻辑回归的一般化,适用于K分类的问题。
Softmax函数的本质就是将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(o,1)之间
Softmax回归概率函数为:
Softmax为多类问题中的每个分类分配了概率值。这些概率加起来等于1。
Softmax可能产生一个属于特定类别的形式可能以如下方式展示:

决策树
决策树:决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出。而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

决策树的结构
决策树的构造就是进行属性的选择,确定各个特征属性之间的树结构。构建决策树的关键步骤就是按照所有的特征属性进行划分操作,对所有的划分操作的结果集的“纯度”进行比较,选择“纯度”最高的属性作为分割数据集的数据点。
纯度的量化指标主要通过信息熵与GINI系数,公式如下:
如果分类前基尼系数很大而分类后基尼系数很小,则决策树是成功的。也就是从一个混乱的样本分割成一个非常清晰的样本
常见的决策树算法有ID3,C4.5,CART等。
决策树构建过程
- 特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法)。
- 决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。
- 剪枝:决策树容易过拟合,需要剪枝来缩小树的结构和规模(包括预剪枝和后剪枝)。
支持向量机( support vector machine,SVM)
支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分器。SVM还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量到分割面的间隔最大,距离最远即可。也利用了核函数技巧将低维空间的分割投影到高维空间中进行分割,可以使分割更为容易。
SVM算法追求最优的分割
直线被用来将数据分割到不同类别中,而实际上我们可以多条直线将数据分来。SVM的核心思路是找到一个直线,使离直线比较近的点,尽可能远离这条直线,这可以使模型具有很强的泛化能力。而这些点就被称为支持向量(Support Vector)在二维空间中,我们用直线来分割,如果是高维空间,,我们使用超平面来分割。

非线性支持向量机
使用核函数来构建非线性支持向量机。原理是核函数的内积,在低维空间和高维空间内积相同。因此才允许算法在变化后的高维特征当中的拟合最大超平面。
核函数允许算法在变换后的高维特征空间中拟合最大的超平面。

高斯函数应用最广。
K最邻近算法
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。
该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
KNN的核心思想是“近朱者赤,近墨者黑”,其在逻辑上十分的简洁。
KNN是非参数方法,常用在决策边界非常不规则的数据集中使用。
KNN在分类预测时,一般采用多数表决法;
KNN在做回归预测时,一般采用平均值法。
KNN的需要非常大的计算量。
一般来说,较大的k值会降低噪声对分类的影响,但会使类之间的边界不那么明显(K值越大越容易欠拟合,因为分割过于粗糙,越小越容易过拟合,因为分割过于细腻。
朴素贝叶斯
朴素贝叶斯算法(Naive Bayes)︰朴素贝叶斯是一种简单的多类分类算法,基于贝叶斯定理,并假设特征之间是独立的。给定样本特征X,样本属于类别H的概率是:


朴素贝叶斯算法,是在知道了先验概率的情况下,去计算后验概率。
集成学习
集成学习是一种机器学习范式,在这种范式中,多个学习者被训练和组合以解决同一个问题。通过使用多个学习者,集成的泛化能力可以比单个学习者强得多。
如果随机向数千人提出一个复杂的问题,然后汇总他们的答案。在许多情况下,会发现这个汇总的答案比专家的答案更好。这就是群众智慧。

- 集成学习-----随机森林
随机森林(Random Forest)= Bagging + CART决策树。
随机森林建立多个决策树,并将它们合并在一起,以获得更准确和稳定的预测。·随机森林可以用于分类和回归问题。
- 集成学习—GBDT
GBDT是Boosting算法的一种。
综合模型的结果是所有基础学习器的结果相加等于预测值
其本质是下一个基础学习器去拟合误差函数对预测值的残差(这个残差就是预测值与真实值之间的误差)。
GBDT在模型训练的时候,是要求模型预测的样本损失尽可能的小。但是非常容易过拟合。
无监督学习-----K-means
K-means算法是输入聚类个数k,以及包含n个数据对象的数据集,输出满足方差最小的标准的k个聚类的一种算法。
K-means算法需要输入聚类的最终个数k ,然后将n个数据对象划分为k个聚类,而最终所获得的聚类满足:(1)同一聚类中的对象相似度较高;(2)而不同聚类中的对象相似度较小。
类内相似度非常高,类间相似度非常低。
无监督学习-----层次聚类
层次聚类法试图在不同层次对数据集进行划分,从而形成树形的聚类结构,数据集的划分可采用“自下向上”的聚合策略,也可以采用“自顶向下”的分拆策略。聚类的层次被表示成树形图。树根拥有所有样本的唯一聚类,叶子是仅有一个样本的聚类。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)