监督学习
KNN
- 基本原理
寻找目标数据点附近最近的K个点,采用投票的方式判断测试数据点所属类别
- 算法步骤
1.计算测试数据与训练数据之间的距离
2.按照距离的递增关系进行排序
3.选取距离最小的K个点
4.确定K个点所在类别出现的频率
5.返回前K个点中出现频率最高的类别作为测试数据的预测分类
- K值的选择
K过小容易发生过拟合,K过大容易发生欠;K尽量取奇数,以保证在计算结果最后会产生一个较多的类别,如果取偶数可能会产生相等的情况,不利于预测;K一般不超过20.
- 优缺点
优点:最简单有效的分类算法,对于类内间距小,类间间距大的数据分类效果好,而且对于边界不规则的数据效果好于线性分类器
缺点:时间复杂度高、对样本不均衡的数据或随机分布的数据效果不好
逻辑回归
- 简要介绍
逻辑回归假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降求解参数,最终达到二分类的目的
- 基本原理
利用回归类似的方法来解决分类问题,输入特征向量,输出0~1的概率值,表示其为正例的概率;虽然用于分类但是其本质还是回归,仅仅是在特征到结果的映射中加入了一层sigmod函数,即先把特征线性求和然后使用非线性函数来预测
常规步骤
预测函数 – 损失函数 – 求解参数损失函数
对数损失函数的训练求解参数的速度比较快
- 优点缺点
优点:计算代价较低;易于理解;占用内存小;训练速度快
缺点:属于线性分类器,很难处理非线性数据;容易欠拟合;分类精度不高;>本身无法筛选特征;很难处理数据不平衡的问题
- 应用场景
离散数据,二分类
- 与线性回归的区别
首先,逻辑回归和线性回归都是广义线性回归;
其次,线性回归的损失函数是平方损失函数,逻辑回归的损失函数是对数损失函数;
最后,线性回归是在整个实数域范围进行预测,分类范围是在0~ 1,总的来说逻辑回归的鲁棒性比线性回归要好。
感知机
- 简要介绍
通过均方损失函数(相当于点到直线的距离)的方法,使用超平面将特征空间划分为两部分,运用梯度下降求解参数,最终达到二分类的目的,即超平面上方的点为正类,反之为负类。
- 基本原理
感知机是二分类的线性分类模型,输入实例的特征向量,输出类别,属于判别模型。
- 求解步骤
1.原始形式算法(梯度下降)
2.对偶形式算法
- 应用场景
神经网络和支持向量机的基础,主要用于二分类算法
支持向量机
- 简要描述
属于一种二分类模型,运用核函数(使得低维空间中的数据映射到高维空间后变得线性可分)技巧使得不同类之间的数据间隔达到最大,可以处理线性/非线性数据
- 基本原理
通过某种事先选择的非线性映射将输入向量映射到一个高维特征空间,在这个空间中构造最优分类超平面,从而使得正例和负例样本之间的分离界限达到最大(解唯一、鲁棒性,泛化能力)。
- 损失函数
当数据线性可分时,通过硬间隔最大化,学习线性分类器;
当数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习线性分类器;
当数据不可分时,通过核技巧以及软间隔最大化,学习非线性分类器;
- 求解超平面的方法
硬间隔:梯度下降法(类似于最优化求解),拉格朗日乘数法
软间隔:凸二次规划
- 核函数的选择
特征数量大,样本数量小,选择LR或线性核的SVM;
特征数量小,样本数量大,可认为数据线性可分
特征数量小,样本数量适中,选择SVM+高斯核函数
- 优点缺点
优点:
使用核函数可以向高维空间映射、解决非线性问题
分类思想简单
分类效果好
缺点:
对确实数据较为敏感,训练大规模数据时比较难
无法支撑多分类
- 应用场景
所有场景和数据都可以试一试
- LR V.S. SVM
相同:均处理二分类问题,并且均会加入第一/第二范式
区别:
LR是参数模型,SVM是非参数模型;
LR的损失函数是对数损失,SVM的损失函数是合页损失;
LR使用非线性映射,SVM仅仅考虑了支持向量,并且可以使用核函数对数据进行处理;
SVM相当而言比LR计算复杂,准g确率比LR低
SVM基于距离分类,LR基于概率分类
- 拟牛顿法
牛顿法需要计算一个hessian矩阵,会比较浪费资源,而拟牛顿法就是在迭代过程中,仅仅利用相邻两个迭代点以及梯度信息,产生一个对称正定矩阵,使之逐步逼近目标函数hessian矩阵的逆矩阵(保留信息的同时也能减小计算量)。
决策树
- 基本原理
在已知类别的前提下,输入特征并通过一系列规则选择最优特征,以树的形式依次对数据进行分类
- 实现过程
特征选择 —> 数的生成 —> 树的剪枝
特征选择:信息增益,信息增益比
- 补充:CART(分类回归树)
有点类似于逻辑回归,输入特征,输出在特征下属于某一类别的条件概率值
回归树:平方误差最小原则
相当于是把输入的特征空间划分为M个单元,每个单元会有一个确定的值c,然后计算预测值与c之间的误差
- 分类树:Gini指数最小原则
用Gini指数选择最优特征
- 树的剪枝
预剪枝(边生成树边剪枝)
后剪枝(树生成之后再剪枝,CART算法主要使用此种剪枝方法)
- 优点缺点
优点:适用于数值型和离散型数据;计算复杂度不高,便于使用且高效;可处理不相关特征的数据并容易地构造出易于理解的规则
缺点:处理确实数据困难;过拟合;易忽略数据集中属性之间的相关性