目录
K-means聚类
决策树
定义
可用于对样本数据进行分类的树形结构,同样也可用于进行预测。每一个样本仅被一条路径所覆盖。
结构
包含根节点(是包含所有样本以及所有特征的起始节点)
内部节点(是用于对样本数据进行划分的特征)
叶节点(最终的样本分类结果)
特征选择
1.ID3算法采用信息增益(max)(缺点:倾向于选择具有较多取值的特征);
2.C4.5采用信息增益率(max);
3.CART采用基尼系数(min)。
停止条件
1.当样本均属于同一类别时,无法进行分类,即停止;
2.当已无可用于进行划分的特征时,停止划分;
3.当所有样本在各特征下取值均相同时,停止划分。
优点
所形成的树状结构易于理解,可形成if-then格式的规则语句,便于业务人员、执行人员理解。
缺点
针对具有较多特征的数据集,容易产生过拟合现象。
*过拟合
学习器在训练样本中具有较好的性能,但在测试样本(即未被训练的样本)中则具有较差的性能,如分类器在训练样本中的精度较高,而在测试集中精度较低。
解决过拟合
1.先剪枝,在构造树的过程中考虑划分是否可以提升模型的泛化性能,若无法提升,则对其进行剪枝处理,即不对其进行特征划分,将当前节点作为叶节点(节省时间与内存开销,但是容易产生欠拟合现象,虽当前的划分无法实现泛化性能的提高,但可能存在后续划分将提高泛化性能的可能性)。
具体操作
1.预先设定树的深度,当树已达到预定深度时,停止树的生长;
2.当划分后叶节点所包含的样本数低于设定的阈值,则返回原节点,将其作为叶节点,以多数样本的所属类别作为叶节点的分类结果;
3.计算每次划分是预测样本精度的提升,若精度提升值小于阈值,则停止树的生长。
2.后剪枝,在构造完成决策树基础上,自下而上的进行剪枝处理,若节点的子树变换为叶节点可带来泛化性能的提升,则对其进行剪枝。(相较于先剪枝,其保留的分支较多,不易产生欠拟合现象,但考虑到其需要在决策树完成构造的前提下方可进行剪枝,其时间开销较大)。具体操作
1.悲观剪枝(无需采用测试集),将误判加上一个经验惩罚因子(叶节点覆盖了N个样本,其中有E个错误,错误率则为(E+0.5)/N,子树的错误率则为p=(∑E+0.5L)/ ∑N,其中L表示子树包含的叶节点个数);
2.代价复杂度剪枝(CART),视子树变为叶节点而造成的错误率的提升为代价,叶节点数衡量复杂度,综合两者求取平衡,找寻具有最小代价复杂度度的树;
3.错误率降低剪枝,将选定子树替换为叶节点,叶节点的结果按照多数原则设定,比较两者在测试集中的表现,若错误率降低,则进行剪枝
*后剪枝具体参考:决策树的剪枝:REP/PEP/CCP算法_weixin_43216017的博客-CSDN博客_rep剪枝
随机森林
定义
是决策树的bagging集成,即由多棵决策树构建一个随机森林模型,在构建决策树的过程中采用有放回的抽取一部分样本作为训练集,抽取部分特征作为特征备选集,从中选择最优特征,使得每一棵决策树的样本与特征具有一定的个性,训练结果也各不相同。
步骤
1.样本选择:采用自助抽样(有放回)的方式抽取样本作为训练样本;
2.特征选择:随机抽取k个特征作为备选特征,采用(ID3,C4.5,CART)算法选择具有最优划分性能的特征作为内部节点,构造决策树;
3.重复上述步骤m次,构建m棵决策树,多棵决策树在构建的过程中是并行运行的;
4.在分类中,以投票(少数服从多数)的方式决定最终的预测结果;在预测中,采用均值的方式决定。
*样本与特征的随机采样使得随机森林具有双重随机性,保证了各决策树的多样性。
优点
1.沿袭了bagging集成的优点,各决策树的构建是并行运行的,时间开销成本较小;
2.针对具有较多特征维度的大型数据集而言,随机森林具有较好的性能,其样本选择克服了数据题量大的困难,其特征选择降低了选择最优特征工作的复杂度;
3.可输出各特征对输出的重要性(在多数决策树中均被用于作为内部节点),可用于作为其余模型构建前的特征筛选过程;
4.针对缺失值也能进行较好的处理。
缺点
1.不适合用于对特征维度较小的数据集;
2.无法给出连续的输出,在随机森林用于回归时,其无法做出超越训练集范围的预测;
3.在某些噪声较大的数据集中,随机森林易产生过拟合现象。
调参
唯一需要调整的参数则为随机选择特征的个数k,若k过小,则分类能力降低,若过大,则容易过拟合
包外估计
由于采用的是自助抽样,将会导致63.2%的样本被抽中作为训练集,仍有36.8%的样本未被利用,可采用这些样本去评估随机森林的泛化性能,以判定其所设置的决策树个数的最优值。
*参考链接:机器学习分类算法(六)-随机森林算法_安替-AnTi的博客-CSDN博客_随机森林分类算法;随机森林(Random Forest)算法_四円的博客-CSDN博客_随机森林
逻辑回归
定义
用于评估事件发生概率的分类模型。
函数
sigmoid函数
优点
1.易于理解;
2.能够输出表达式并分析各特征的权重。
缺点
1.曲线呈现S型,两端的概率变化极小,中间的变化较为剧烈,难以确定阈值;
2.仅能处理线性可分问题。
参数估计
采用极大似然估计,依据梯度下降的原则更新参数
延申问题
逻辑回归对数据分布的要求?
要求服从伯努利分布(不是1就是0)。
在训练模型前,对数据进行离散化处理的好处?
一方面,增强模型的泛化性能,减少噪声的影响,另一方面,简化模型,提高模型的运行效率。
*参数估计过程:逻辑回归(logistics regression)_winrar_setup.rar的博客-CSDN博客_逻辑回归
K近邻——KNN
定义
对于待测样本,基于某种距离函数选择与待测样本最近的K个训练样本,依据训练样本的结果决定待测样本的分类结果,分类结果采用投票的方式决定,回归结果采用平均法进行决定,距离越近,权重越大。
距离函数
欧式距离
曼哈顿距离 ∑|x-y|
切比雪夫距离 max(x-y)
K值的选择
K值小,只有与输入实例十分接近的训练实例才有效,近似误差小,估计误差大;
K值大,与输入实例较远的训练实例也会有用,造成近似误差大,估计误差小。
kd树分类步骤
①选择根节点,这个根节点是一个包含全部数据集的超矩形区域。
②按照中位数切分的方式进行切割。例如x坐标的中位数是5,那么就在x=5处画一条竖线,将矩形分割为两个超矩形。
③按照中位数切割法继续对数据集进行划分,直到两个划分出来的超矩形区域不存在实例为止。
优点
1.无需对数据进行假设,准确度高,对异常值不敏感
2.适合样本容量较大的类域的自动分类
3.可用于非线性划分
缺点
1.在样本分布不平衡时,对稀有类别的样本预测精度较低
2.相比于决策树,其可解释性不强
3.容易受到K值和距离度量的影响
4.属于慵懒学习,即到需要对样本进行预测时才进行训练,相较于急切学习(已训练好模型),其预测速度较慢
延申问题
样本不均衡对KNN的影响,以及如何处理该问题?
可能造成大数量的样本占多数,但是此类样本不接近目标样本,而小数量样本靠近目标样本。就此,易造成待测样本归属于大数量样本的类别,但与实际有所出入,这归结于knn分类仅考虑哪一类样本占多数。对此,可引入距离权重,对距离实例较近的点赋予较高权重,而距离较远的点则赋予较低的权重。
朴素贝叶斯
定义
通过特征的概率进行分类。根据各类别的出现先验概率以及各类别下特征属性的似然概率计算出待测样本从属各类别的后验概率。即先验概率推后验概率,以似然概率求max来实现。
“朴素”定义
“朴素”指的是各特征之间是相互独立的
步骤
1.训练分类器,计算出每个不同分类类别在训练样本中出现的概率,以及在每个类别下各特征属性出现的概率;
2.对待测样本进行分类,计算该样本出现的条件下,每个分类类别出现的概率,哪个类别出现的概率最高,该样本就从属于哪个类别。
拉普拉斯平滑
为解决特征属性值为空的情况,采用拉普拉斯平滑,其假定样本量足够大,对每个特征各属性加入1个计数,并不会产生较大影响。
*n/N = (n+1)/(N+C) 表示有C个属性
优点
1.朴素贝叶斯的贝叶斯定理发展较为成熟,分类效果稳定;
2.对缺失数据不敏感;
3.对于小规模数据具有较好的分类性能,可以处理多分类情况;
4.对异常值不敏感。
缺点
1.假定各属性间相互独立,但现实生活中不存在属性的完全独立,分类效果受到属性影响;
2.数据变量需先假设正态分布;
3.需预先知道先验概率,但其取决于假设,结果的好坏依赖于假设。
贝叶斯网络
背景
放宽了对属性间相互独立的条件限制,允许各变量之间存在依赖关系。
构成因素
有向无环图和条件概率表
前提假设
每一个节点在其直接前驱节点的值制定后,这个节点条件独立于其所有非直接前驱前辈节点。P(v|par(v),x1,x2...,xn) = P(v|par(v))
优点
1.对缺失数据不敏感;
2.可以学习因果关系,加深对数据的理解;
缺点
无法对变量进行筛选,认定变量对被解释变量的影响一致
树增强朴素贝叶斯
背景
当各属性之间的相关性较小时,朴素贝叶斯具有较好的分类效果。当特征属性过多(>15个)时,朴素贝叶斯的分类性能不及决策树,且其中易存在属性之间相关性较强的可能。基于此,提出树增强贝叶斯,考虑了部分属性之间的相互依赖。是贝叶斯信念网络的简化版本。
步骤
1.通过计算各特征属性间的条件互信息,找到与Xi具有最大条件互信息的Xj,采用无向边连结;
2.任意选择一个特征作为根,发散的标注弧线方向。
支持向量机
定义
用于进行分类的模型,其基本思想是找出能够准确划分训练数据集并且几何间隔最大的超平面。
原理
对于点
,其到线
的距离为
。支持向量指的是距离超平面最近的点,支持向量到超平面的距离之和为
,需要求该距离的最大值,反过来求的是
的最小值。
核函数
当样本数据非线性可分时,需要引入核函数,将原始的样本空间映射到高维空间,使得样本数据在高维空间上线性可分。常见的核函数有:线性核函数、高斯核函数和多项式核函数。
优点
1.线性支持向量机可用于线性可分情况;
2.仅需要少数的支持向量便可确定超平面,因此,该模型对异常值不敏感;
3.计算的复杂度仅取决于少数支持向量,而不是样本空间的维度,避免了“维数灾难”的影响。
缺点
1.线性支持向量机仅可用于线性二分类问题,针对多分类问题,需要多个模型一同完成;
2.对参数和核函数的选择较为敏感。
延申问题
针对非线性可分数据,是否可用支持向量机?
若数据集近似线性可分,可引入松弛变量,求解软间隔最大化,此时为线性支持向量机;
当数据线性不可分的时候,引入核函数以及软间隔最大化,得到非线性支持向量机。
参考链接
K-means聚类
步骤
1.随机选择k个质心;
2.计算各点到不同质心的距离,将其归类于与其距离最近的质心簇中;
3.依据划分好的簇重新计算质心;
4.重复步骤2和3,直到划分不再改变,即完成聚类。
优点
1.针对大型数据,具有较快的处理速度;
2.原理简单,易于实现,可解释性较强。
K值的确定
1.采用
的方式确定;
2.找到簇内方差与k的曲线拐点。
初始点的确定
1.初始点需尽可能的相互远离;
2.可先采用层次聚类,得到k个簇之后,从每个簇中选择一个点作为中心点,即可得到k个初始质心。
缺点
1.聚类的结果受到k值以及初始质心的影响,聚类效果不稳定;
2.易受到噪声和异常值的影响;
3.仅能发现球形形状(球形互斥)的簇,不适合非凸形状的簇。
4.启发式算法(贪心算法)仅能实现局部最优,无法实现全局最优。
延申问题
如何避免K-Means算法陷入选择质心的循环停不下来?
1.可采用预先设定迭代数,若已到达最大的迭代次数,则停止算法;
2.通过设定收敛判断距离进行限制。