机器学习之基础分类算法总结

分类问题是指数据集标签为离散型数据的问题,预测得到的也是离散型结果。

1. K-近邻算法

分类流程(无需训练):

计算数据集中每个点与当前点之间的距离,按照距离递增次序排序,选取与当前点距离最小的k个点,确定前k个点所在类别的出现频率,出现频率最高的类别作为当前点的预测分类。


优点: 精度高、对异常值不敏感、无数据输入假定、简单。
缺点: 计算复杂度高(每次预测都要使用整个数据集),空间复杂度高(必须保存全部数据集),只能用作分类而无法获取其他特征。
适用范围:数值型或标称型(即“类型”)数据,规模小的数据。


2. 决策树

训练流程:

即递归构造决策树,递归的出口为当前节点的标签是否相同(同一分类),或已经使用完所有特征也无法分为同一类,否则计算当前节点每个特征的信息增益(香农熵的期望值),以最大香农熵对应的特征作为最好特征,创建节点,以最好特征为界将数据集分为两个子树,删除最好特征,并递归对子树调用构造函数。

分类流程:

从根节点开始,将节点的分类标签与要判断的数据的对应分类标签作比较,对决策树进行深搜,找到对应叶子节点,并返回当前节点的分类标签。


优点: 计算复杂度不高,输出结果易理解(即决策过程透明),对中间值的缺失不敏感(计算信息增益时忽略),可以处理不相关特征数据(建立特征间的联系)。
缺点: 可能会产生过度匹配(决策树会对每个特征都做详细考虑)。
适用范围:数值型或标称型数据,适用于较大的数据(一次建树,可以重复使用,但也不能太大,要注意占用空间)。


3. 朴素贝叶斯

训练流程:

即计算独立特征的条件概率(若是某种类别,则取到某个特征为真的概率)。

分类流程:

给定某个数据点,通过独立特征的条件概率利用贝叶斯公式计算属于某个类别的概率。


优点: 数据少也有效,可以处理多分类问题。
缺点: 对输入数据的准备方式比较敏感。
适用范围:标称型数据。


4. 逻辑回归

略(深度学习中会提到)

5. 支持向量机

数据预准备:

通过径向基核函数将低维数据映射到更高维的空间,得到K矩阵,以便找到超平面。

训练流程(1次迭代):

对所有训练数据遍历,利用alphas值计算得到误差,利用松弛常量计算上下界,若该点得alpha值可以被优化(即误差太大并且在支持向量上),则选择另一个误差最大的alpha值,同时优化这两个向量,计算新误差更新误差缓存,如果两个向量都不能被优化则退出循环,通过两个alpha值更新b1,b2,最后得到更新后得alpha和b。

分类流程:

先用核函数将数据进行转换,然后利用训练好的alphas矩阵及数据的标签和b计算出预测结果(正负)。


优点: 泛化错误率低,计算开销不大,结果易解释,是现阶段最好的分类器之一。
缺点: 对参数调节和核函数选择敏感,这里描述的分类器只能处理二类问题。
适用范围:数值型和标称型数据。


6. AdaBoost

简单描述:

AdaBoost通过训练多个分类器,通过错误率为不同的分类器分配权重,最终得到一个强分类器。这里的弱分类器选择单层决策树。

建立单层最优决策树:

先将最小错误率设为正无穷,遍历数据集中的每一个特征,找到特征中的最大最小值以计算步长,在每个步长中,分别对大于和小于阈值的情况进行预测,计算错误率,找到错误率最小的特征及对应的阈值和不等情况,作为单层最优决策树的信息返回。

训练流程:

找到单层最优决策树,将其加入决策树数组,通过单层最优决策树的误差计算权重递推公式中的指数项,进而得到新的权重向量,更新类别估计累积值(即预测结果),计算错误率,若错误率等于0(或达到最大迭代次数),则退出循环。返回决策树(分类器)数组及最后的类别估计累积值。

分类流程:

将数据用多个分类器进行分类,并将预测结果进行加权运算相加得到最后的二值结果。


优点: 泛化错误率低,可以组合不同的分类器,无参数调整(只需要调分类器个数)
缺点: 对离群点敏感(离群点是指不符合一般规律的点,这种点错误率会很高)
适用范围:数值型和标称型数据。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值