监督学习方法

Posted z1xiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监督学习方法相关的知识,希望对你有一定的参考价值。

学习资料:《统计学习方法 第二版》、《机器学习实战》、吴恩达机器学习课程

一. 感知机Proceptron

  1. 感知机是根据输入实例的特征向量(x)对其进行二类分类的线性分类模型:(f(x)=operatorname{sign}(w cdot x+b)),感知机模型对应于输入空间(特征空间)中的分离超平面(w cdot x+b=0)

  2. 感知机学习的策略是极小化损失函数:(min _{w, b} L(w, b)=-sum_{x_{i} in M} ;y_{i}left(w cdot x_{i}+b ight))
    损失函数对应于误分类点到分离超平面的总距离。

  3. 感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法。对于所有误分类的点,计算这些点到超平面的距离,目的是最小化这些点到平面的距离。

当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。

二. K近邻算法

  • K-近邻算法是一种没有显示学习过程的算法。数据集的可代表性就很重要!

  • K-近邻原理:把数据集和输入实例点都映射到空间内,对给定的输入实例点,首先确定输入实例点的??个最近邻训练实例点,这??个训练实例点的类的多数就是预测的输入实例点的类。

  • K-近邻算法的核心要素是K的值、距离度量(一般为欧式距离)、分类决策规则(一般是多数表决)。当训练集和核心要素确定时,其结果确定。

  • (k)值小时,(k)近邻模型更复杂;??值大时,??近邻模型更简单。

三. 朴素贝叶斯

1. 数学公式

朴素的意思是所有特征相互独立且同等重要。就说明

[P(x_1x_2…x_k)=P(x_1)P(x_2)…P(x_k) ]

贝叶斯定理:

[P(X,Y)=P(Y)P(X|Y) ]

得到朴素贝叶斯法的模型:

[P(Y | X)=frac{P(X, Y)}{P(X)}=frac{P(Y) P(X | Y)}{sum_{Y} P(Y) P(X | Y)} ]

2. 三种常用的朴素贝叶斯模型

  • 高斯模型 当特征是连续变量时使用,假设特征符合高斯分布
  • 多项式模型 当特征是离散值使用
    多项式模型在计算先验概率(P(y_k)P(y_k))和条件概率(P(x_i|y_k)P(x_i|y_k))时,会做一些平滑处理

技术图片

  • 伯努利模型 当特征是离散值且是二值离散时使用

四. 决策树

决策树是基于特征对实例进行分类的树形结构。包括三大步骤:特征的选择、决策树的生成、决策树的剪枝。

1. 特征的选择

信息论(information theory)中的熵(香农熵)的定义:随机变量不确定性的度量。
熵是一种信息的度量方式,表示信息的混乱程度,也就是说:信息越有序,信息熵越低。例如:火柴有序放在火柴盒里,熵值很低,相反,熵值很高。熵越大,随机变量的不确定性就越大。

信息增益

信息增益的定义:熵之差。在这里表示的是得知特征X后使得类Y划分不确定度减少的程度。

选择特征的方法是:计算每个特征对于训练集的信息增益。选择信息增益最大的特征,即分类能力强的特征。

信息增益比

用信息增益来选择特征易选择取值较多的特征,信息增益比在信息增益的基础之上乘上一个惩罚参数:特征个数较多时,惩罚参数较小,信息增益比也变小;特征个数较少时,惩罚参数较大,信息增益比随之增大。

信息增益比偏向于选择取值较少的特征。

基尼指数

基尼指数(基尼不纯度)表示在样本集合中一个随机选中的样本被分错的概率,即指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。

2. 决策树的生成

对于当前数据集的每一次的划分,都希望根据某特征划分之后的各个子集的纯度更高,不确定性更小。

ID3算法

用信息增益从大到小选择特征,根据特征的取值将训练集分为相应子集,形成对应子结点,每个子结点中的训练子集中数量最多的类作为该结点的类标记,然后递归构建决策树。

C4.5算法

用信息增益比从大到小选择特征,递归构建决策树。

CART算法

CART是个二叉树,也就是当使用某个特征划分样本集合时,不管这个特征有几个取值,划分时都只有两个集合:一个是等于给定的特征值的样本集合D1 。另一个是不等于给定的特征值的样本集合D,实际上是对拥有多个取值的特征的二值处理。

因而对于一个具有多个取值(超过2个)的特征,需要计算以每一个取值作为划分点,对样本D划分之后子集的纯度Gini(D,Ai),(其中Ai 表示特征A的可能取值),然后从所有的可能划分的Gini(D,Ai)中找出Gini指数最小的划分,这个划分的划分点,便是使用特征A对样本集合D进行划分的最佳划分点。

3. 决策树的剪枝

  • 简化决策树,防止过拟合;
  • 合并无法产生大量信息增益的叶结点,消除过度匹配的问题;
  • 通过优化损失函数,减小决策树复杂度。

五. logistic回归

logistic回归是一种二分类算法

1. 表达式和函数图像

技术图片

技术图片

2. cost function

技术图片

技术图片

3. 梯度下降

技术图片

六. SVM

Support Vector(支持向量):就是离超平面最近的点

SVM是线性分类算法,与感知机不同的是,SVM的原理是不仅仅要成功做到线性可分,还要找最大间隔largest margin——就是支持向量离超平面最近的距离,然后最大化这个距离。进而转化为最优化问题——最优化距离。

1. 松弛变量

之前的模型噪声对非常敏感。如果数据集存在噪音,会导致最终超平面的选择不够好,甚至造成线性不可分的情况。在优化目标函数上加上松弛变量就类似于正则化变量一样,允许离群点的存在,但是会对离群点有所惩罚。寻找最优最大间隔与考虑离群点的存在之间的平衡就成了优化目标。

2. 核函数

SVM是线性分类算法。对于非线性可分的数据集,可以利用核函数将数据映射到高维空间,从而把低纬线性不可分数据转为高纬度线性可分数据,然后再用SVM。

七. 集成方法

bagging、boosting都是集成多个分类器的方法。

1. bagging

把训练集进行随机放回抽样,抽取出与原训练集数量相同的新数据集,总共生成多个样本数量相同的新训练集。利用同一个学习算法对这几个训练集训练,形成多个分类器。之后预测新实例时用多个分类器同时进行预测,选择最多的分类类别作为结果。

最常用的方法:随机森林

2. boosting

只用原始数据集,但对里面每个样本赋予权重,先后用同种弱分类器训练数据集,每个弱分类器训练结束得到由分类正确率计算出来的alpha值,再通过这个值更新样本权重。预测新实例时是将每个弱分类器预测结果乘alpha值线性相加得到。

最常用的方法:Adaboost

八. 分类

分类问题可以分为二分类问题、多分类问题、多标签分类问题和多输出分类

二分类:一个样本只有一个标签且只可能是0或者1;

多分类:一个样本只有一个标签但标签结果为多个;

多标签:一个样本有多个标签,但每个标签的值是0或1;

多输出:一个样本有多个标签且每个标签的值为多个。

如何解决多分类的问题

  1. 一些算法(比如随机森林分类器或者朴素贝叶斯分类器)可以直接处理多类分类问题。

  2. 其他一些算法(比如 SVM 分类器或者线性分类器)则是严格的二分类器。但是,用一些策略可以让二分类器去执行多类分类。

    • OvA n个类需要n个分类器:每一个类对应一个二分类器,输出是或否。优点是分类器较少,缺点是每个分类器需要训练所有数据。
    • OvO n个类需要n(n-1)/2个分类器:每两个类组成一个二分类器,输出两个类中的一个。优点是每个分类器只需要在训练集的部分数据上面进行训练,这部分数据是它所需要区分的那两个类对应的数据。缺点是分类器较多。(SVM适合OvO)

九. 线性回归

线性回归模型中将cost function最小化除了用梯度下降还可以用正规方程。正规方程法不需要学习率,不需要特征缩放,可以直接一次计算出:

技术图片

只要特征变量的数目并不大,标准方程是一个很好的计算参数的替代方法。具体地说,只要特征变量数量小于一万,通常使用标准方程法,而不使用梯度下降法。

注意:有些时候对于某些模型不能使用正规方程而只能用梯度下降。

以上是关于监督学习方法的主要内容,如果未能解决你的问题,请参考以下文章

无监督学习K-means聚类算法原理介绍,以及代码实现

01_有监督学习--简单线性回归模型(最小二乘法代码实现)

03_有监督学习--简单线性回归模型(调用 sklearn 库代码实现)

02_有监督学习--简单线性回归模型(梯度下降法代码实现)

无监督学习DBSCAN聚类算法原理介绍,以及代码实现

编码风格的监督学习 - 特征选择(Scikit Learn)