监督学习模型整理

监督学习模型及特点

最近邻

​ 适用于小型数据集,是很好的基准模型,很容易解释

线性模型

​ 非常可靠的首选算法,适用于非常大的数据集,也适用于高维数据。

朴素贝叶斯

​ 只适用于分类问题。比线性模型速度快,适用于非常大的数据集和高维数据。精度通常低于线性模型。

决策树

​ 速度很快,不需要数据缩放,可以可视化,很容易解释

随机森林

​ 鲁棒性很好。不需要数据缩放。不适用于高维稀疏数据

梯度提升决策树

​ 精度通常比随机森林略高,训练速度慢,预测速度快,所需内存少。比随机森林需要更多的参数调节

支持向量机

​ 适用于特征含义相似的中等大小数据集,需要数据缩放,参数敏感

神经网络

​ 可以构建非常复杂的模型,特别是对于大型数据集而言。数据缩放敏感,参数选取敏感。大型网络需要很长训练时间。

1、K近邻模型

1.K近邻分类

采用投票法指定分类结果,以k个邻居中占多数的类别作为分类结果。

注意:使用更少的邻居对应更高的模型复杂度,使用更多的邻居对应更低的模型复杂度。

2.K近邻回归

注意:仅使用单一邻居每个样本都对结果有显著影响

3.特点

优点:容易理解;构建模型速度快。
缺点:样本数过大或者特征数过多时,预测速度比较慢;不能处理有很多特征的数据集。

2、线性模型

1. 回归问题

单一特征的预测结果:一条直线

两个特征的预测结果:一个平面

更高维度的预测结果:一个超平面

1) 线性回归(普通最小二乘法)

寻找参数 w (权重或系数)和 b (偏移或截距) ,使得对训练集的预测值与真实的回归目标值y的均方误差最小。

特点:线性回归没有参数,但也因此无法控制模型的复杂度。可以通过测试集和训练集的性能差别判断是欠拟合还是过拟合。

2) 岭回归

在普通最小二乘的基础上,对系数(w)的选择还要你和附加约束,希望w中的所有元素接近于0。即每个特征对输出的影响尽可能小(斜率很小)。用到L2正则化(惩罚了系数的L2范数或欧式长度)。

特点:如果有足够多的数据,正则化的重要性会降低,岭回归和线性回归将具有同样的性能。

3) lasso回归

用到L1正则化(惩罚了系数的L1范数,即系数的绝对值之和)。L1正则化的结果,使用lasso时某些系数刚好为0(特征被忽略,可以看做是一种自动化的特征选择)。

特点:如果把alpha设的过小,会消除正则化的效果,并出现过拟合,得到与线性回归类似的结果。

2. 分类问题

决策边界是输入的线性函数,线性分类器是利用直线、平面或超平面来分开的两个类别的分类器。

线性模型算法的区别:
① 系数和截距的特定组合对训练数据拟合好坏的度量方法(损失函数)
② 是否使用正则化,使用哪种正则化

决定正则化的权衡参数——C。
C越大,对应的正则化越弱。
更强的正则化使得系数更趋于0,但系数永远不会正好等于0。
C较大:尽可能将训练集拟合到最好;强调每个数据点都分类的重要性。
C较小:更强调使系数向量接近于0;尽量适应“大多数”数据点。

1) Logistic 回归
默认使用L2正则化。
2) 线性支持向量机(线性SVM)
3) 多分类线性模型

常见方法:“一对其余”方法。每个类别学习一个二分类模型,将其与其他类别区分开来。

3. 特点

线性模型的主要参数是正则化参数


通常在对数尺度上对alpha和C进行搜索。

优点:
  •   训练速度快,预测速度快
  •   可以推广到非常大的数据集
  •   对稀疏数据也很有效
  •   容易理解如何进行预测
  •   常用于非常大的数据集

缺点:
  •   不完全清楚系数的含义,很难对系数做出解释

3、朴素贝叶斯分类器

通过单独查看每个特征来学习参数,并从每个特征中收集简单的类别统计数据。

特点
优点:训练速度更快,对高维系数数据的效果好,对参数的鲁棒性(Robust)相对较好,适用于非常大的数据集
缺点:泛化能力较差

4、决策树

本质:从一层层的if/else问题进行学习得出结论。

1. 构造决策树
递归过程生成一棵二元决策树,每个内部节点包含一个测试。可以将每个测试看成沿着一条轴对当前数据进行划分。由于每个测试仅关注一个特征,所以划分后的区域边界始终与坐标轴平行。

2. 控制决策树的复杂度
未剪枝的树容易过拟合,对新数据泛化性能不佳。

防止过拟合的策略:
① 及早停止树的生长,即 预剪枝
② 先构造树,随后删除或折叠信息量很少的节点,即 后剪枝

3. 树的特征重要性
特征重要性为每个特征对树的决策的重要性进行排序,每个特征都是介于0到1的数字,所有之和为1。

4. 特点
优点:得到的模型容易可视化;算法不收数据缩放的影响
缺点:对于所有基于树的回归模型来说,不能外推,也不能在训练数据范围之外进行预测;经常会过拟合,泛化性能差。

5、决策树集成

集成:合并多个模型来构建更强大模型的方法。

1. 随机森林

思想:多棵决策树的集合,每棵树都以不同的方式过拟合,采取平均值降低过拟合。

将随机性添加到树的构造过程中,以确保每棵树都不同。

随机化方法:
  •   通过选择用于构造树的数据点
  •   通过选择每次划分测试的特征

▲   构造
对数据进行自助采样,有放回的抽取样本,共抽取n次。
基于新数据集来构造决策树,随机选择特征的一个子集,并对其中一个特征寻找最佳测试。

▲   特点
优点:
① 不需要反复调节参数就可以给出很好的结果,不需要对数据进行放缩。
② 拥有决策树的所有优点。森林中的树越多,它对随机状态的鲁棒性就越好。
缺点:
① 对于维度非常高的稀疏数据表现不是很好。
② 训练和预测速度比线性模型要慢。
③ 占用内存大

2. 梯度提升回归树(梯度提升机)

思想:合并多个决策树来构建一个更为强大的模型。采用连续的方式构造树,每棵树试图纠正前一棵树的错误。

参数 learning_rate 用于控制每棵树纠正前一棵树的错误的强度,较高的学习率意味着每棵树都可以做出较强的修正,使得模型更复杂。

可以通过限制最大深度、降低学习率防止过拟。

▲   特点
缺点:
① 需要仔细调参
② 训练时间可能会比较长
③ 通常不适用于高维稀疏数据
优点:
① 不需要对数据进行放缩就可以表现得很好
② 适用于二元特征与连续特征同时存在的数据集

6、核支持向量机(SVM)

SVC:分类问题
SVM:回归问题

1. 线性模型与非线性特征

在线性模型基础上添加更多的特征(eg:添加输入特征的交互项或多项式),对输入特征进行扩展,作为新特征。

2. 核技巧

原理:直接计算扩展特征表示中数据点之间的距离(内积),而不用实际对扩展进行计算

① 多项式核
在一定阶数内计算原始特征所有可能的多项式

② 径向基函数核(高斯核)
考虑所有阶数的所有可能的多项式,阶数越高,特征的重要性越小

3. SVM

支持向量:通常只有一部分训练数据点对于决策边界来说很重要:位于类别之间边界上的那些点

分类决策:基于它与支持向量之间的距离以及在训练过程中学到的支持向量重要性来做出的

高斯核:


γ控制高斯核宽度的参数。

4. 参数

gamma:较小,说明高斯核的半径较大,生成更复杂的模型。反之亦然。

C:较小,每个点的影响范围有限。

5. 特点

优点:
① 允许决策边界复杂
缺点:
① 对样本个数的缩放表现不好
② 预处理数据和调参都需要非常小心
③ 很难检查

7、神经网络(深度学习)

1. 神经网络模型

激活函数:
① 校正非线性 relu:截断小于0的值
② 正切双曲线 tanh:输入较小时接近-1,输入较大时接近+1

性质:在开始学习之前权重是随机设置的,随机初始化会影响到学到的模型。也就是说,即使用完全相同的参数,如果随机种子不同,也可得到非常不一样的模型。

2. 特点

优点:能够捕获大量数据中包含的信息,并构建复杂模型
缺点:
① 训练时间长
② 需要仔细地预处理数据

调参方法:
首先创建一个大到足以过拟合的网络,确保网络可以对任务进行学习。之后,要么缩小网络,要么增大alpha来增强正则化,提高泛化性能。

版权声明:本文为CSDN博主「zzc_zhuyu」的原创文章,遵循 CC 4.0 BY-SA 版权协议,
转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zzc_zhuyu/article/details/86567847

最新文章