陆陆续续整理的机器学习的知识点,资料大多数来自网上,不做盈利目的,如果侵权请告知即删!如果文章中有错误的地方还请各位同学指正,,一起学习,一起进步!
每天都在更新中,记得收藏,每天进步一点点!!
一天1个机器学习知识点(一)(决策树,有无监督学习,SVM,梯度下降法,逻辑回归,NB)
一天1个机器学习知识点(二)(KNN,Kmeans,偏差方差,参数非参数模型,生成模型判别模型,正则化,概率,牛顿法,熵)
一天1个机器学习知识点(三)(损失函数,生成模型和判别模型,DBSCAN,OPTICS,准确率,精确率,召回率,ROC等)
一天1个机器学习知识点(四)这部分主要更新集成学习的内容(RF,adaboost,GBDT,XGBoost等)
一天1个机器学习知识点(五)(特征工程相关,PCA,LDA等)
穿越---->深度学习知识点!!
关于决策树的几个算法看机器学习面试题系列第四章。
一种最基本的分类与回归方法,因为实际应用中基本上全是用来分类,所以重点讨论分类决策树。
根据损失函数最小化原则建立决策树模型
决策树学习通常包括3个步骤:特征选择、决策树生长和决策树的修剪
其本质就是一颗树,由结点(node)和有向边(directed edge)组成,结点分为内部结点和叶子结点,内部结点表示一个特征(其实是一个集合,该集合中的样本在该结点的父节点上的属性取值相同,有点绕),叶子结点表示一个类。
用决策树进行分类,从根节点开始,对实例的某个特征进行测试(每个结点都会内部维护一个特征的字段),根据测试结果,将实例分配到其子节点;此时,每一个子节点对应着该特征的一个取值,如此递归的对实例进行测试并分配,直到到达叶子结点,最后将实例分到叶子结点代表的类中。
因为从所有可能的决策树中选取最优决策树,这是一个NP完全问题,很难在多项式时间内求解(或者根本不存在这样的解)
所以现实中决策树学习算法采用启发式方法,近似求解这一最优化问题。所谓的启发式方法就是递归的选择最优特征,并根据该特征对训练数据进行分割。(启发函数见1.6)
这里的特征选择不是传统说的对特征进行过滤,而是说决策树选择什么特征进行分裂。特征选择是决定用哪个特征来划分特征空间 。通常训练数据集的样本会有多个特征,feature1、feature2……feature n,在每一步划分的过程中,各个特征的分类能力是不同的,在划分的时候一般选取分类能力强的特征进行划分训练集。
关于信息的相关总结看这里
表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。可以很好的判断各个特征划分数据集的能力。
经验熵或经验熵:也叫香农熵,信息熵其实是信息量的期望。表示随机变量的不确定性。变量不确定性越高,熵越高。
下式中|Ck|表示属于第k类的样本子集个数。
条件熵:在特征A条件下事件D的经验熵。
下式中|Di|表示特征A取第i个值的样本子集个数。|Dik|表示特征A中取第i个值时第k类的样本子集个数。
特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D/A)之差,即 g(D,A)=H(D)-H(D|A)
可以看这篇文章补充。
主要是ID3算法,C4.5算法和CART算法,其中ID3算法的评价指标是信息增益最大,C4.5算法的评价指标是信息增益率最大,CART算法的评价指标是基尼系数最小。
ID3算法利用信息增益进行特征的选择,信息增益反映的是给定条件后不确定性减少的程度。每一次对决策树进行分叉选取属性的时候,我们会选取信息增益最高的属性来作为分裂属性,只有这样,决策树的不纯度才会降低的越快。
信息增益的理解:
对于待划分的数据集D,其 entroy(前)是一定的,但是划分之后的熵 entroy(后)是不定的,entroy(后)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此 entroy(前) - entroy(后)差异越大,说明使用当前特征划分数据集D的话,其纯度上升的更快。而我们在构建最优的决策树的时候总希望能更快速到达纯度更高的集合,这一点可以参考优化算法中的梯度下降算法,每一步沿着负梯度方法最小化损失函数的原因就是负梯度方向是函数值减小最快的方向。同理:在决策树构建的过程中我们总是希望集合往最快到达纯度更高的子集合方向发展,因此我们总是选择使得信息增益最大的特征来划分当前数据集D。
缺点:信息增益偏向取值较多的特征
原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较 偏向取值较多的特征。
所以要用到下面的信息增益比。
C4.5算法与ID3相似,局部进行 了改进,C4.5算法在决策树生成的过程中,用信息增益比来选择特征。
信息增益比:信息增益比 = 惩罚参数 * 信息增益
信息增益比本质: 是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。
缺点:信息增益比偏向取值较少的特征
原因: 当特征取值较少时HA(D)的值较小,因此其倒数较大,因而信息增益比较大。因而偏向取值较少的特征。
使用信息增益比:基于以上缺点,并不是直接选择信息增益率最大的特征,而是先在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。
定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。
注意: Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。
即 基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率
说明:
pk表示选中的样本属于k类别的概率,则这个样本被分错的概率是(1-pk)
样本集合中有K个类别,一个随机选中的样本可以属于这k个类别中的任意一个,因而对类别就加和
当为二分类是,Gini§ = 2p(1-p)
因而对于一个具有多个取值(超过2个)的特征,需要计算以每一个取值作为划分点,对样本D划分之后子集的纯度Gini(D,Ai),(其中Ai 表示特征A的可能取值)
然后从所有的可能划分的Gini(D,Ai)中找出Gini指数最小的划分,这个划分的划分点,便是使用特征A对样本集合D进行划分的最佳划分点。
基尼指描述的是数据的纯度。通过基尼系数来进行特征选择(对于每一个特征A,对于A的每一个取值a,计算数据集中特征A等于a和不等于a的两个数据集的基尼系数,选择基尼系数最小的特征和特征取值)。但与ID3,C4.5不同的是,CART是一颗二叉树,采用二元切割法,每一步都将特征的取值分成两份,分别进行左右子树
缺失值处理:
决策树中针对缺失值,需要解决以下2个问题:
1)如何在属性值缺失的情况下进行划分属性选择?
2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
对于过拟合现象产生的原因,有以下几个方面,
对于过拟合现象的预防措施,有以下一些方法,
决策树剪枝的基本策略有:预剪枝 和 后剪枝
是指在决策树的生成过程中,对每个结点在划分前后进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前结点标记为叶结点。
几种方法:
优点:不仅降低了过拟合的风险,还显著的减少了决策树训练时间的开销和测试时间的开销
缺点: 有些分支的当前划分不会提升泛化性能、甚至可能导致返回性能的暂时降低,但在其基础上进行的后序划分却又可能导致性能的显著提高。
产生这种问题的原因是,预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。
先从训练集生成一颗完整的决策树,然后自底向上的对非叶子结点考察,若将该结点对应的子树替换成叶子结点能决策树泛化性能的提升,则将该子树替换成叶结点。
优点: 相对于预剪枝来说:后剪枝通常比预剪枝决策树保留了更多的分支。一般情况下后剪枝决策树的欠拟合风险较小,泛化性能往往优于预剪枝决策树。
缺点: 因为是在完全生成决策树的以后,再从低到上的对树中的所有非叶子结点进行逐一考察,因此其训练时间开销比未剪枝和预剪枝决策树大很多。
有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测。(LR,SVM,BP,RF,GBDT,KNN)
无监督学习:对未标记的样本进行训练学习,比发现这些样本中的结构知识。(KMeans,DL)
无监督学习最常应用的场景是聚类(clustering)和降维(DimensionReduction)
降维就是在保证数据所具有的代表性特征或分布的情况下, 将高维数据转化为低维数据的过程。
PCA,自编码器
单独拿出来讲,因为比较特殊。
放几篇文章:
文章1
文章2
文章3
(1)半监督分类 (Semi-Supervised Classification)
在无类标签的样例的帮助下训练有类标 签的样本,获得比只用有类标签的样本训练得到的分类器性能更优的分类器,弥补有类标签的样本不足的缺陷,其中类标签yi取有限离散值
(2)半监督回归(Semi-Supervised Regression)
在无输出的输入的帮助下训练有输出的输入,获得比只用有输出的输入训练得到的回归器性能更好的回归器,其中输出yi 取连续值 yi∈R。
(3)半监督聚类(Semi-Supervised Clustering)
在有类标签的样本的信息帮助下获得比只用无类标 签的样例得到的结果更好的簇,提高聚类方法的精度。
(4)半监督降维(Semi-Supervised Dimensionality Reduction)
在有类标签的样本的信息帮助下找到高维输入数据的低维结构,同时保持原始高维数据和成对约束(Pair-Wise Constraints)的结构不变,即在高维空间中满足正约束(Must-Link Constraints)的样例在低维空间中相距很近,在高维空间中满足负约束(Cannot-Link Constraints)的样例在低维空间中距离很远。
基本思想:SVM的目标在数据特征空间寻找一个最优超平面将数据分成两类,这个最优化超平面使得离其最近的点到其的距离最大化,这些点被称为支持向量。SVM可以用于解决二分类或者多分类问题。
几何间隔:点到超平面的距离。
注意到几何间隔与||w||是成反比的,因此最大化几何间隔与最小化||w||完全是一回事。而我们常用的方法并不是固定||w||的大小而寻求最大几何间隔,而是固定间隔(例如固定为1),寻找最小的||w||。
目标函数:一个寻优问题最重要的部分是目标函数。例如我们想寻找最小的||w||这件事,就可以用下面的式子表示:
但实际上对于这个目标,我们常常使用另一个完全等价的目标函数来代替,那就是:
以下参考文章
根据以上定义,SVM模型的求解最大分割超平面问题可以表示为约束最优化问题。
SVM的约束条件就是所有点到超平面的距离都要大于最小几何间隔:
参考1,参考2
对于拉格朗日乘子,对偶问题,KTT条件参考
上面SVM的目标函数是一个含有不等式约束的凸二次规划问题,我们可以将该凸二次规划问题通过拉格朗日对偶性来解决。
一句话就是通过拉格朗日算子使带约束的优化目标转为不带约束的优化函数,使得W和b的偏导数等于零,带入原来的式子,再通过转成对偶问题。
目的有两个:
原因:在现实任务中很难找到一个超平面将不同类别的样本完全划分开,即很难找到合适的核函数使得训练样本在特征空间中线性可分。退一步说,即使找到了一个可以使训练集在特征空间中完全分开的核函数,也很难确定这个线性可分的结果是不是由于过拟合导致的。有可能一些离群点或者噪声点影响分界面。
解决方法:允许某些样本不满足约束
解释:引入松弛变量后,就允许某些样本点的函数间隔小于1,即在最大间隔区间里面,或者函数间隔是负数,即样本点在对方的区域中。C是离群点的权重,值越大说明离群点对目标函数影响越大,这时候间隔就会很小。
原因:原始空间线性不可分,可以使用一个非线性映射将原始数据x变换到另一个高维特征空间,在这个空间中,样本变得线性可分。
解决方法:常用的一般是径向基RBF函数(线性核,高斯核,拉普拉斯核等)。
优点:避免了高维空间的计算,计算核函数的复杂度和计算原始样本内积的复杂度没有实质性的增加。
当数据的特征提取的较好, 所包含的信息量足够大, 很多问题是线性可分的那么可以采用线性核。
若特征数较少, 样本数适中, 对于时间不敏感,遇到的问题是线性不可分的时候可以使用高斯核,映射到一个线性可分的特征空间来达到更好的效果。
当样本的特征很多且维数很高时可考虑用SVM的线性核函数。当样本的数量较多,特征较少时,一般手动进行特征的组合再使用SVM的线性核函数。当样本维度不高且数量较少时, 且不知道该用什么核函数时一般优先使用高斯核函数, 因为高斯核函数为一种局部性较强的核函数, 无论对于大样本还是小样本均有较好的性能且相对于多项式核函数有较少的参数。
因为将泰勒展开式代入高斯核,将会得到一个无穷维度的映射。
参考1
参考2
方法:
对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据记性分类。即,不仅将正负实例例点分开,而且对最难分的实例例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例例有很好的分类预测能力。
SVM只和分类界限上的支持向量点有关,换而言之只和局部数据有关。
参考
相同点:
不同点:
如果N=1,此时为SGD,计算代价函数梯度的时候只考虑一个样本;
如果N=样本容量,此时为BGD,计算代价函数梯度的时候考虑全部样本;
如果N=m,1
SGD计算根据随机一个样本构造出来的代价函数的梯度,这与计算根据全部样本构造出来的代价函数的梯度会有偏差,也许是一个不好的梯度方向,下降时候并不沿着最优的方向下降,但是优点是可以快速的计算一个近似梯度,因为计算量缩减到原来的1/N。
BGD计算根据全部样本的构造出来的代价函数的梯度,方向肯定是沿着当前最优的下降方向,但是计算代价较高,当数据集较大时,相当耗时。
Mini-batchGD是前两者的折中。
梯度下降法并不是下降最快的方向,它只是目标函数在当前的点的切平面(当然高维问题不能叫平面)上下降最快的方向。
牛顿方向(考虑海森矩阵)才一般被认为是下降最快的方向,可以达到Superlinear的收敛速度。梯度下降类的算法的收敛速度一般是Linear甚至Sublinear的(在某些带复杂约束的问题)。
有一些自动调学习率的方法。一般来说,随着迭代次数的增加,学习率应该越来越小,因为迭代次数增加后,得到的解应该比较靠近最优解,所以要缩小步长η,那么有什么公式吗?比如:
但是这样做后,所有参数更新时仍都采用同一个学习率,即学习率不能适应所有的参数更新。解决方案是:给不同的参数不同的学习率
特点:
前期除的那一坨较小的时候, regularizer较大,能够放大梯度
后期除的那一坨较大的时候,regularizer较小,能够约束梯度
适合处理稀疏梯度
缺点:
AdaGrad算法在迭代后期由于学习率过小,可能较难找到一个有用的解。为了解决这一问题,RMSprop算法对Adagrad算法做了一点小小的修改,RMSprop使用指数衰减只保留过去给定窗口大小的梯度,使其能够在找到凸碗状结构后快速收敛。
假设N元函数f(x),针对一个自变量研究RMSprop梯度下降的迭代过程,
可以看出分母不再是一味的增加,它会重点考虑距离他较近的梯度(指数衰减的效果),也就不会出现Adagrad到后期收敛缓慢的问题。对于adagrad,上式的ρ跟(1-ρ)都是1,也就是不进行衰减。
如果使用的是没有动量的梯度下降法,则可能会停到第一个次优解(局部最优解)。
假设N元函数f(x),针对一个自变量研究Momentum梯度下降的迭代过程,
v表示动量,初始v=0,α是一个接近于1的数,一般设置为0.9,也就是把之前的动量缩减到0.9倍,η是学习率
Adam实际上是把momentum和RMSprop结合起来的一种算法
假设N元函数f(x),针对一个自变量研究Adam梯度下降的迭代过程,
下面依次解释这五个式子:
①式中,注意m(n)是反向的动量与梯度的和(而在Momentum中是正向动量与负梯度的和,因此⑤式对应的是减号)
②式中,借鉴的是RMSprop的指数衰减
③和④式目的是纠正偏差
⑤式进行梯度更新
该算法更新梯度的指数移动均值(mt)和平方梯度(vt),而参数 β1、β2 ∈ [0, 1) 控制了这些移动均值(moving average)指数衰减率。移动均值本身使用梯度的一阶矩(均值)和二阶原始矩(有偏方差)进行估计。然而因为这些移动均值初始化为 0 向量,所以矩估计值会偏差向 0,特别是在初始时间步中和衰减率非常小(即β接近于 1)的情况下是这样的。但好消息是,初始化偏差很容易抵消,因此我们可以得到偏差修正(bias-corrected)的估计 mt hat 和 vt hat。
在使用梯度下降时,需要进行调优。哪些地方需要调优呢?
参考
用一句话概括:逻辑回归假设数据服从伯努利分布, 通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。
这里面其实包含了5个点 1:逻辑回归的假设,2:逻辑回归的损失函数,3:逻辑回归的求解方法,4:逻辑回归的目的,5:逻辑回归如何分类。这些问题是考核你对逻辑回归的基本了解。
h是σ函数,是0-1的概率值,其中h’=h(1-h),梯度下降法求解的时候会用到
提高二分类的效率
逻辑回归作为一个回归(也就是y值是连续的),如何应用到分类上去呢。y值确实是一个连续的变量。逻辑回归的做法是划定一个阈值,y值大于这个阈值的是一类,y值小于这个阈值的是另外一类。阈值具体如何调整根据实际情况选择。一般会选择0.5做为阈值来划分。
交叉熵损失函数的好处是可以克服方差代价函数更新权重过慢的问题(针对激活函数是sigmoid的情况)。
答:如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。
但是对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,你现在将它重复100遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每一个特征都是原来特征权重值的百分之一。
如果在随机采样的情况下,其实训练收敛完以后,还是可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了。
去掉高度相关的特征会让模型的可解释性更好。
可以大大提高训练的速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。
答:1.形式简单,模型的可解释性非常好。从特征的权重可以看到不同的特征对最后结果的影响,某个特征的权重值比较高,那么这个特征最后对结果的影响会比较大。
2.模型效果不错。在工程上是可以接受的(作为baseline),如果特征工程做的好,效果不会太差,并且特征工程可以大家并行开发,大大加快开发的速度。
3.训练速度较快。分类的时候,计算量仅仅只和特征的数目相关。并且逻辑回归的分布式优化sgd发展比较成熟,训练的速度可以通过堆机器进一步提高,这样我们可以在短时间内迭代好几个版本的模型。
4.资源占用小,尤其是内存。因为只需要存储各个维度的特征值。
5.方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cutoff,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。
答:1.准确率并不是很高。因为形式非常的简单(非常类似线性模型),很难去拟合数据的真实分布。
2.很难处理数据不平衡的问题。举个例子:如果我们对于一个正负样本非常不平衡的问题比如正负样本比 10000:1.我们把所有样本都预测为正也能使损失函数的值比较小。但是作为一个分类器,它对正负样本的区分能力不会很好。
3.处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据,或者进一步说,处理二分类的问题 。
4.逻辑回归本身无法筛选特征。有时候,我们会用GBDT来筛选特征,然后再上逻辑回归。
关系:
可以认为逻辑回归的输入是线性回归的输出,将逻辑斯蒂函数(Sigmoid曲线)作用于线性回归的输出得到输出结果。线性回归y = ax + b, 其中a和b是待求参数;
逻辑回归p = S(ax + b), 其中a和b是待求参数, S是逻辑斯蒂函数,然后根据p与1-p的大小确定输出的值,通常阈值取0.5,若p大于0.5则归为1这类。
线性回归y = ax + b, 其中a和b是待求参数。
区别,即损失函数的区别:
线性回归中使用的是最小化平方误差损失函数,对偏离真实值越远的数据惩罚越严重。这样做会有什么问题呢?假如使用线性回归对{0,1}二分类问题做预测,则一个真值为1的样本,其预测值为50,那么将会对其产生很大的惩罚,这也和实际情况不符合,更大的预测值说明为1的可能性越大,而不应该惩罚的越严重。
逻辑回归使用对数似然函数进行参数估计,使用交叉熵作为损失函数,对预测错误的惩罚是随着输出的增大,逐渐逼近一个常数,这就不存在上述问题了。
附上个人写的基于垃圾邮件分类理解NB的文章https://blog.csdn.net/qq_22613769/article/details/100035103
朴素贝叶斯算法是基于①贝叶斯定理,②特征条件独立假设的分类方法。对于给定的待分类项x ,通过学习到的模型计算后验概率分布进行分类,即:在此项出现的条件下各个目标类别出现的概率,将后验概率最大的类作为x 所属的类别。
(1)简单来说:
(2)进一步说明:前者是生成式模型,后者是判别式模型,二者的区别就是生成式模型与判别式模型的区别。
首先,Navie Bayes通过已知样本求得先验概率P(Y), 及条件概率P(X|Y), 对于给定的实例,计算联合概率,进而求出后验概率。也就是说,它尝试去找到底这个数据是怎么生成的(产生的),然后再进行分类。哪个类别最有可能产生这个信号,就属于那个类别。
优点: 样本容量增加时,收敛更快;隐变量存在时也可适用。
缺点:时间长;需要样本多;浪费计算资源
相比之下,Logistic回归不关心样本中类别的比例及类别下出现特征的概率,它直接给出预测模型的式子。设每个特征都有一个权重,训练样本数据更新权重w,得出最终表达式。
优点:直接预测往往准确率更高;简化问题;可以反应数据的分布情况,类别的差异特征;适用于较多类别的识别。
收敛慢;不适用于有隐变量的情况。
简单来说:利用贝叶斯定理求解联合概率P(XY)时,需要计算条件概率P(X|Y)。在计算P(X|Y)时,朴素贝叶斯做了一个很强的条件独立假设(当Y确定时,X的各个分量取值之间相互独立,即各个特征之间相互独立毫无关系可言),即P(X1=x1,X2=x2,…Xj=xj|Y=yk) = P(X1=x1|Y=yk)P(X2=x2|Y=yk)…*P(Xj=xj|Y=yk)。但这个假设在现实生活中很不真实,因此很“朴素”。
朴素贝叶斯的主要优点有:
1)朴素贝叶斯模型有稳定的分类效率。
2)对小规模的数据表现很好,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。
3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。
朴素贝叶斯的主要缺点有:
1) 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。
2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。
3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。
4)对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)
人们在使用分类器之前,首先做的第一步(也是最重要的一步)往往是特征选择,这个过程的目的就是为了排除特征之间的共线性、选择相对较为独立的特征;
对于与分类任务来说,只要各类别的条件概率排序正确,无需精准概率值就可以导致正确分类;
如果属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算复杂度的同时不会对性能产生负面影响。