各种机器学习分类器模型分析与认识

一、首先从线性和非线性上来看:

线性linear,指量与量之间按比例、成直线的关系,在数学上可以理解为一阶导数为常数的函数; 非线性non-linear则指不按比例、不成直线的关系,一阶导数不为常数。
a. 线性的可以认为是一次函数曲线,比如y=ax+b ,即成一条直线,变量的关系是直线即为线性关系
   非线性的可以认为是二次及高次函数曲线,比如y=ax^2+bx+c,非直线即为非线性关系
b. “线性”与“非线性”,常用于区别函数y = f (x)对自变量x的依赖。
  线性,指量与量之间按比例、成直线的关系,在空间和时间上代表规则和光滑的运动;而非线性则指不按比例、不成直线的关系,代表不规则的运动和突变。 
******************************线性分类器和非线性分类器*****************************************

线性分类器:模型是参数的线性函数,分类平面是(超)平面;
非线性分类器:模型分界面可以是曲面或者超平面的组合。
典型的线性分类器有感知机,线性判别分析(LDA),逻辑斯特回归,支持向量机SVM(线性核);
典型的非线性分类器有朴素贝叶斯(线性非线性有争议),KNN,决策树,SVM(非线性核)。

二、分类算法。

贝叶斯分类器,KNN,SVM支持向量机,决策树,

1、贝叶斯分类器

贝叶斯分类器是一类分类算法的总称,以贝叶斯定理为基础,因此统称为贝叶斯分类器。 
原理:通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。

目前研究较多的贝叶斯分类器主要有四种: 
(1)朴素贝叶斯(Naive Bayes,简称NB):最简单的监督学习分类器,这个分类器模型是建立在每一个类别的特征向量服从正态分布的基础上的(据说不满足独立分布,效果也很好),因此也被称为概率分类器。整个分布函数被假设为一个高斯分布,每一类别一组系数。当给定了训练数据,算法将会估计每一个类别的向量均值和方差矩阵,然后根据这些进行预测。

特点:如果没有很多数据,该模型会比很多复杂的模型获得更好的性能,因为复杂的模型用了太多假设,以致产生欠拟合。
(2)TAN分类器(Tree Augmented Naive Bays,又称树增强型朴素贝叶斯分类器):在朴素贝叶斯基础上进行了进一步扩展,是一种半朴素贝叶斯分类器,它允许各特征变量所对应的结点构成一棵树。 
(3)BAN分类器(BN Augmented Naive Bayes):进一步扩展TAN分类器,允许各特征变量所对应的结点之间的关系构成一个图,而不只是树。 
(4)GBN分类器(General Bayesian Network):一种无约束的贝叶斯网络分类器,和前三类贝叶斯网络分类器有较大区别的是在前三类分类器中均将类变量所对应的结点作为一个特殊的结点,即是各特征结点的父结点,而GBN中将类结点作为一普通结点。

. Naive Bayesian Mode 朴素贝叶斯模型

最简单的监督学习分类器,这个分类器模型是建立在每一个类别的特征向量服从正态分布的基础上的(据说不满足独立分布,效果也很好),因此也被称为概率分类器。整个分布函数被假设为一个高斯分布,每一类别一组系数。当给定了训练数据,算法将会估计每一个类别的向量均值和方差矩阵,然后根据这些进行预测。

特点:如果没有很多数据,该模型会比很多复杂的模型获得更好的性能,因为复杂的模型用了太多假设,以致产生欠拟合。

2.K Nearest Neighbors(KNN) K近邻

这个算法首先贮藏所有的训练样本,然后通过分析(包括选举,计算加权和等方式)一个新样本周围K个最近邻,然后把新样本标记为在K近邻点中频率最高的类。

这种方法有时候被称作“基于样本的学习”,即为了预测,我们对于给定的输入搜索最近的已知其相应的特征向量。

特点:简单有效,但因为需要存储所有的训练集,占用很大内存,速度比较慢。使用该方法前通常训练集先聚类来降低数据大小。

3. Support Vector Machines(SVM) 支持向量机

SVM是一种基于核函数的方法,它通过某些核函数把特征向量映射到高维空间(一般情况下高维空间上比低维空间上更加线性可分),然后建立一个线性判别函数(或者说是一个高维空间中的能够区分训练数据的最优超平面)。最优解在某种意义上是两类中距离分割面最近的特征向量和分割面的距离最大化。离分割面最近的特征向量被称为”支持向量”,意即其它向量不影响分割面(决策函数)。

注:

特点:当数据集合比较小的时候,支持向量机的效果常常最好。对于核来说,不仅仅只存在于 SVM 内,对于任意的算法,只要计算时出现了内积的,都可以用核函数替代,从而提高在高维数据上的性能。

推荐博客:支持向量机通俗导论(理解SVM的三层境界)

4. Decision Trees 决策树

决策树是一个二叉树。当每个叶节点用类别标识(多个叶子可能有相同的标识)时,它可以表示分类树;当每个叶节点被分配了一个常量(所以回归函数是分段常量)时,决策树就成了回归树。决策树是从根结点递归构造的。用所有的训练数据(特征向量和对应的响应)来在根结点处进行分裂。在每个结点处,优化准则(比如最优分裂)是基于一些基本原则来确定的(比如ML中的“纯度purity”原则被用来进行分类,方差之和用来进行回归)。所有的数据根据初始和替代分裂点来划分给左右子结点(就像在预测算法里做的一样)。然后算法回归的继续分裂左右子结点。在以下情况下算法可能会在某个结点停止:

a) 树的深度达到了指定的最大值

b) 在该结点训练样本的数目少于指定值,比如,没有统计意义上的集合来进一步进行结点分裂了。

c) 在该结点所有的样本属于同一类(或者,如果是回归的话,变化已经非常小了)

d) 跟随机选择相比,能选择到的最好的分裂已经基本没有什么有意义的改进了。

决策树自身的优点:

a) 计算简单,易于理解;

b) 适应不同的数据类型(包括类别数据,数值数据,未归一化的和混合的数据);

c) 比较适合处理有缺失属性的样本;

d) 通过分裂的顺序给数据特征赋不同的重要性;

e) 能够处理不相关的特征;

f) 在相对短的时间内能够对大型数据源做出可行且结果良好的结果;

g) 决策树构成了其他算法的基础(如boosting和随机数)。

决策树的缺点:

a) 容易发生过拟合(随即森林可以很大程度上减少过拟合);

b) 忽略了数据之间的相关性;

c) 对于那些,各类别样本数量不一致的数据,在决策树中,信息增益的结果偏向于那些具有更多数值的特征(只要使用了信息增益,都有这个特点,如RF)

5. Boosting

Boosting 是个非常强大的学习方法, 它也是一个监督的分类学习方法。它组合许多“弱”分类器来产生一个强大的分类器组。一个弱分类器的性能只是比随机选择好一点,因此它可以被设计的非常简单并且不会有太大的计算花费。将很多弱分类器结合起来组成一个集成的强分类器。boosting分类器和随机森林在内部默认使用了决策树,所以继承了决策树的很多有用的性质(能够处理混合数据模型、没有归一化的数据、特征丢失),当然在sklearn中也可以自定义选择其他的基学习器(建议选择弱学习器)。

1.AdaBoost算法

如下:

1. 给定N样本 (xi,yi) 其中 

2. 初始化权值 

3. 重复 for m = 1,2,…,M:

a) 根据每个训练数据的wi计算。

b) 计算

c) 更新权值并归一化使 Σiwi= 1.

4. 输出分类器

特点:简单,不容易发生过拟合,不用做特征筛选。Boosting算法是一个两类分类器(不像决策树和随机森林)

2.GBDT(Gradient Boosting Decision Tree,梯度提升决策树)

Gradient boosting 是 boosting 的其中一种方法,它主要的思想是,每一次建立单个学习器时,是在之前建立的模型的损失函数的梯度下降方向。

我们知道损失函数(loss function)越大,说明模型越容易出错,如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度(Gradient)的方向上下降。

通俗说法:在每次训练的基础上不断调整提升错误样本权重,降低正确样本权重,让后面的学习器能高度关注训练时预测错误的样本,这样得到多个针对不同样本点的基学习器模型,在预测时汇总投票得到预测分类的最终结果

6. bagging

bagging方法bootstrap aggregating的缩写,采用的是随机有放回的选择训练数据然后构造分类器,最后组合。其本身是保证每一个基学习器的多样性(通过随机的方式选取不同的数据,不同的参数,同样的基础模型:比如决策树)来构建。

随机森林算法学习(RandomForest)

随机森林既可以解决回归问题,也可以解决分类问题。随机森林可以通过收集很多树的子节点对各个类别投票,然后选择获得最多投票的类别作为判断结果。通过计算”森林“的所有子节点的值的平均值来解决回归问题。

随机森林建立时的基本子系统也是决策树。在建立决策树时会一直继续下去直到数据纯净。因此,尽管每个树都很好的学习了训练数据,但各个树之间仍有很大不同。我们把这些树放到一起求平均以消除这些不同(因此叫随机森林)。当然,如果所有的树都相同,随机森林也没有很大作用。为了克服这点,随机森林通过在树的建立过程中,随机选择特征子集来使各个树不同。例如,一个目标识别树可以有很多可能的特征:颜色,质地,倾斜度等。树的每个节点可以从这些特征中随机的选择子集,来决定怎样更好地分裂数据。每个后来的节点都获得新的、随机选择的特征子集。

特点:与boosting和决策树相比,随机森林可以使用更少的重要变量,获得最好的预测性能。即我们可以收缩特征集的大小,在不损失性能的前提下减少计算量和内存使用随机森林。

7. 逻辑回归  Logistic Regression

逻辑回归是一种有监督的统计学习方法,主要用于对样本进行分类。(重点:用于分类的回归函数)

大多数的基学习器都是以线性模型作为基础 ,不断提升加入自身的算法特点拓展而成。逻辑回归就是线性分类器中比较有代表性的,从原理上讲,逻辑回归所运用的sigmoid方式比同样借助线性模型的SVM要简单。

逻辑回归模型的代价函数

逻辑回归一般使用交叉熵作为代价函数。关于代价函数的具体细节,请参考代价函数。

逻辑回归也被称为广义线性回归模型,它与线性回归模型的形式基本上相同,都具有 ax+b,其中a和b是待求参数,其区别在于他们的因变量不同,多重线性回归直接将ax+b作为因变量,即y = ax+b,而logistic回归则通过函数S将ax+b对应到一个隐状态p,p = S(ax+b),然后根据p与1-p的大小决定因变量的值。这里的函数S就是Sigmoid函数

将t换成ax+b,可以得到逻辑回归模型的参数形式:
 

猜你喜欢

转载自blog.csdn.net/qq_39989653/article/details/85683499