分类方法总结

对机器学习中常用的分类算法进行总结



目录

1.逻辑回归

(1)LR思想

(2)损失函数

(3)参数更新

(4)如何应用于多分类

2.naive byeis

(1)NB原理

(2)NB优缺点

3.SVM

(1)划分超平面

(2)支持向量

(3)拉格朗日求解

(4)非线性支持向量机和核函数

(5)软间隔最大化

(6)与LR的区别(面试常考)

4.KNN

(1)KNN原理

(2)三要素

(3)KNN优缺点

5.综合选择


1.逻辑回归

(1)LR思想

逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。

对线性回归的结果(y=wx+b)做一个在sigmoid函数上的转换,压缩到[0,1](不仅能得出分类结果,还能得出分到此类的概率)

(2)损失函数

我们希望损失函数的值越小越好,对于二分类,当真值为1,模型的预测输出为1时,损失最好为0,它的函数为:

 

(3)参数更新

与线性回归类似,我们使用梯度上升的方法,加上学习率乘梯度,其中sigmoid函数求导f'(x)=f(x)*(1-f(x))

(4)如何应用于多分类

方式一:修改逻辑回归的损失函数,使用softmax函数构造模型解决多分类问题,softmax分类模型会有相同于类别数的输出,输出的值为对于样本属于各个类别的概率,最后对于样本进行预测的类型为概率值最高的那个类别。

方式二:对每个类别都建立一个二分类器,本类别的样本标签定义为0,其它分类样本标签定义为1,则有多少个类别就构造多少个逻辑回归分类器。

选择原则:若所有类别之间有明显的互斥则使用softmax分类器,若所有类别不互斥有交叉的情况则构造相应类别个数的逻辑回归分类器。

 

2.naive byeis

(1)NB原理

朴素贝叶斯方法是一种生成模型,对于给定的输入x,通过学习到的模型计算后验概率分布P(c | x),将后验概率最大的类作为x的类输出,已知贝叶斯定理如下

当B为样本x,A为类别c,则可以借助这个公式来推理后验概率P(c | x)

(2)NB优缺点

1)对小规模的数据表现很好

2)适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练

3)朴素贝叶斯模型的特征条件独立假设在实际应用中往往是不成立的。(二假设:样本独立同分布、属性条件独立)

4)如果样本数据分布不能很好的代表样本空间分布,那先验概率容易测不准

 

3.SVM

(1)划分超平面

(2)支持向量

(3)拉格朗日求解

引入对偶问题的目的有两个:一是方便核函数的引入;二是原问题的求解复杂度与特征的维数相关,而转成对偶问题后只与问题的变量个数有关。由于SVM的变量个数为支持向量的个数,相较于特征位数较少,因此转对偶问题。

  分别对w和b求偏导,并令其导数为0,故而求得

最后一项是因为拉格朗日乘子必须非负

解决上面的优化问题,可用到序列最小最优化SMO算法(选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题)

 

(4)非线性支持向量机和核函数

对于非线性可分的问题,将训练样本从原始空间映射到一个更高维的空间,使得样本在这个空间中线性可分

   常用核函数如下表:

问:什么时候用线性核,什么时候用高斯核?

当数据的特征很多且维度较高,样本量很大,很多问题是线性可分的那么可以采用线性核。

若特征数较少且维度较低,遇到的问题是线性不可分的时候可以使用高斯核来达到更好的效果。(高斯核函数为一种局部性较强的核函数,无论对于大样本还是小样本均有较好的性能且相对于多项式核函数有较少的参数。)

(5)软间隔最大化

在现实任务中很难恰好找到某个核函数使得训练样本线性可分,缓解该问题的方法是允许SVM在某些样本上出错,即软间隔

近似线性可分情形下去掉训练数据中部分异点,剩下大部分都是线性可分的,故而要引入松弛变量,将硬间隔变为软间隔。每个样本都有个松弛变量,表示该样本不满足约束的程度

(6)与LR的区别(面试常考)

相同点:都是监督学习算法、分类算法、判别算法;在学术界和工业界都应用广泛

不同点:

1)loss function不同;

SVM损失函数自带正则||w||2,这是SVM结构风险最小化的原因。而LR需另外添加正则项。

(LR的损失函数是 cross entropy loss, adaboost的是 expotional loss ,svm是hinge loss)

2)LR考虑全局,而SVM只考虑局部的边界线附近的点;

3)在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法

4)线性 SVM 依赖数据表达的距离测度,所以需要先对数据做 normalization, LR 则不受影响

 

4.KNN

(1)KNN原理

存在一个样本数据集合,并且样本集中每个数据都存在分类标签。输入没有标签的数据后,将新数据中的每个特征与样本集中数据对应的特征进行比较,依据投票法提取出样本集中特征最相似数据(最近邻)的分类标签。

一般用kd树来加快搜索,对k维空间不断用垂直于坐标轴的超平面划分,选取中位数。搜索最近邻时,首先找到包含目标点的叶节点,然后依次回退到父节点,不断查找最近点。

(2)三要素

分别是k值的选取,距离度量的方式和分类决策规则。

其中,K值选择不同会导致不一样分类结果。在实际应用中,K值一般取一个比较小的数值,例如采用交叉验证法(简单来说,就是一部分样本做训练集,一部分做测试集)来选择最优的K值。

(3)KNN优缺点

1)KNN没有显示的训练过程,它是“懒惰学习”的代表,它在训练阶段只是把数据保存下来,训练时间开销为0,等收到测试样本后进行处理

2)计算量大,因为对每一个待分类的样本都要计算它到全体已知样本的距离,才目前常用的解决方法是事先对已知样本点进行剪辑,去除对分类作用不大的样本;

 

5.综合选择

(1)模型选择

假如特征维数较多,可以选择SVM模型;

如果样本数量较大可以选择LR模型,模型简单,训练速度快;

假如缺失值较多可以选择决策树,抛弃极少量的缺失值的样本对决策树的创建影响不是太大,还可以通过概率权重的方式进行计算;

(2)样本处理

还可以在考虑正负样例比比,通过上下集采样平衡正负样例比。

缺失值处理

归一化处理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值