分类是一种对离散随机变量建模或预测的监督学习算法。分类通常基于回归方法扩展,适用于预测一个类别(或类别的概率)而不是连续数值。
常用的分类方法包括
- 逻辑回归:对应线性回归方法,但使用了Sigmoid函数将预测映射为0到1之间的数值
- 分类树:对应回归树,又称为分类回归树(CART),将数据集分割为不同分支而实现分层分类
- 深度学习:使用多层神经网络分类
- 支持向量机(SVM):基于核函数计算支持向量之间的距离,并寻找最大化其与样本间隔的边界
- 朴素贝叶斯:基于贝叶斯定理和特征条件独立假设的分类方法
线性回归(分类) #
分类问题,如下图,
期望使用一根线将数据分成两类。
K 近邻算法 #
在 K-Means Clustering K-均值聚合 我们已经介绍过,K 近邻算法是分类算法中最简单的一种。
K 近邻(K-Nearest Neighbors,简称:KNN)算法是最近邻(NN)算法的一个推广,也是机器学习分类算法中最简单的方法之一。KNN 算法的核心思想和最近邻算法思想相似,都是通过寻找和未知样本相似的类别进行分类。但 NN 算法中只依赖 1 个样本进行决策,在分类时过于绝对,会造成分类效果差的情况,为解决 NN 算法的缺陷,KNN 算法采用 K 个相邻样本的方式共同决策未知样本的类别,这样在决策中容错率相对于 NN 算法就要高很多,分类效果也会更好。
朴素贝叶斯 #
在分类预测中,以概率论作为基础的算法比较少,而朴素贝叶斯就是其中之一。朴素贝叶斯算法实现简单,且预测分类的效率很高,是一种十分常用的算法。
\(P(\text{类别} \mid \text{特征})=\frac{P(\text{特征} \mid \text{类别}) \times P(\text{类别})}{P(\text{特征})} \tag{5}\)
向量机 #
逻辑回归的实验中,我们尝试通过一条直线针对线性可分数据完成分类。同时,实验通过最小化对数损失函数来找到最优分割边界 使用一条直线对线性可分数据集进行分类的过程中,我们已经知道这样的直线可能有很多条:
问题来了,哪一条直线是最优的划分方法呢?
在逻辑回归中,我们引入了 S 形曲线和对数损失函数进行优化求解。如今,支持向量机给了一种从几何学上更加直观的方法进行求解,如下图所示:
决策树 #
决策树是一种特殊的树形结构,一般由节点和有向边组成。其中,节点表示特征、属性或者一个类,而有向边包含判断条件。决策树从根节点开始延伸,经过不同的判断条件后,到达不同的子节点。而上层子节点又可以作为父节点被进一步划分为下层子节点。一般情况下,我们从根节点输入数据,经过多次判断后,这些数据就会被分为不同的类别。这就构成了一颗简单的分类决策树。
集成学习 #
集成学习。集成学习(英文:Ensemble learning),顾名思义就是通过构建多个分类器并综合使用来完成学习任务,同时也被称为多分类器系统。其最大的特点就是结合各个弱分类器的长处,从而达到「三个臭皮匠顶个诸葛亮」的效果。
每一个弱分类器被称作「个体学习器」,集成学习的基本结构就是生成一组个体学习器,再用某种策略将他们结合起来。
从个体学习器类别来看,集成学习通常分为两种类型:
「同质」集成,在一个集成学习中,「个体学习器」是同一类型,如 「决策树集成」 所有个体学习器都为决策树。
「异质」集成,在一个集成学习中,「个体学习器」为不同类型,如一个集成学习中可以包含决策树模型也可以包含支持向量机模型。
同样从集成方式来看,集成学习也可以分为两类:
并行式,当个体学习器之间不存在强依赖关系时,可同时生成并行化方法,其中代表算法为装袋(Bagging)算法。
串行式,当个体学习器之间存在强依赖关系时,必须串行生成序列化方法,其中代表算法为提升(Boosting)算法。
装袋算法 Bagging #
装袋算法是并行式集成学习的代表,其原理也比较简单。算法步骤如下:
- 数据处理:将数据根据实际情况进行清洗整理。
- 随机采样:从样本中随机选出 m 个样本作为一个子样本集。有放回的重复 T 次,得到 T 个子样本集。
- 个体训练:设定 T 个个体学习器,将每一个子样本集放入对应个体学习器进行训练。
- 分类决策:用投票法集成进行分类决策。
随机森林 #