C. 人工智能 — 机器学习 — 监督学习
分类算法
- k近邻算法kNN
- 特点
- 优点:精度高、对异常值不敏感、无数据输入假定
- 缺点:计算复杂度高、空间复杂度高
- 关键点
- 数据归一化
- 特点
- 朴素贝叶斯算法
- 线性分类
- Logistic回归算法
- 特点
- 优点:计算代价不高,易于理解和实现
- 缺点:容易欠拟合,分类精度可能不高
- 二分类
- 多分类
- 一种改进方式是通过多次二分类实现多个类别的标记
- 另一种多分类的方式通过直接修改逻辑回归输出的似然概率,使之适应多分类问题,得到的模型就是 Softmax 回归
- 特点
- 支持向量机(最优分界线)
- 问题
- 什么样的决策边界是最好的
- 数据在低维空间很难分
- 计算复杂度怎么样?能实际使用吗?
- 特点
- 优点:泛化错误率低,计算开销不大,结果易解释
- 缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二分问题。
- 算法
- 线性可分支持向量机
- 线性支持向量机
- 噪音,引入松弛因子
- 非线性支持向量机
- 核函数(进行空间转换,变成线性的,分界线为超平面空间)
- 线性核
- 多项式核
- 高斯核
- 拉普拉斯核
- 核函数(进行空间转换,变成线性的,分界线为超平面空间)
- 问题
- Logistic回归算法
预测回归算法
- 概念
- 实函数在样本点附近加以近似的有监督的函数近似问题。
- 线性回归
- 特点
- 优点:结果易于理解,计算上不复杂
- 缺点:对非线性的数据拟合不好
- 最小二乘法
- 惩罚性线性回归
- 岭回归
- LASSO回归
- 特点
决策树算法
- 原理
- 熵:越混乱,值越大,越有序,值越小
- 特点
- 优点
- 计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不想关特征数据
- 缺点
- 过拟合风险
- 优点
- 步骤
- 特征选择
- 决策树生成
- 决策树剪枝
- 预剪枝
- 限制深度
- 叶子结点个数
- 叶子结点样本数
- 信息增益量
- 等等
- 后剪枝:先建完成树,再剪枝
- 叶子结点越多,损失越大
- 预剪枝
- 分类
- ID3:信息增益(将无序的数据变得更加有序)
- 问题
- 不适合解决稀疏的特征,极端情况下,其中一个维度每条数据都有一个唯一值
- 问题
- C4.5:信息增益比(优化了信息增益的问题)
- 原理
- 添加了标签的概率信息进去
- 原理
- CART:使用GINI系数来做衡量标准
- ID3:信息增益(将无序的数据变得更加有序)
- 回归
- 特点
- 优点:可以对复杂和非线性的数据建模
- 缺点:结果不易于理解
- 关键点
- 通过 均方误差 来分树
- 特点
集成算法
- 核心:在多样性和准确定之间做出权衡集成算法,一般使用的树是树模型
- 前提
- 学习器性能要有一定保证
- 学习器的性能要有一定的差异,和而不同才能够取得进步
- 学习器是否相同
- 同质集成
- 异质集成
- 结果汇总方法
- 分类
- 硬投票:直接按照投票数算
- 软投票:分类器加权平均,要求每个分类器给出的不是 0和1,而是概率值
- 回归
- 取均值
- 分类
- 算法分类
- Bagging(并行):不存在强依赖关系
- 随机森林
- 训练
- 针对每棵树,随机从样本中抽取一部分数据构建
- 在构建树的过程中,随机选取一部分特征使用(不要全部)
- 预测
- 多棵树同时输出结果
- 分类
- 回归
- 多棵树同时输出结果
- 特点
- 优点
- 可解释性
- 自动选择特征
- 能够给出特征的重要性
- 评估标准
- 第一种:离根节点越近,越重要
- 第二种:修改其中一个维度的数据,看看对错误率的影响
- 错误率急剧上升,说明重要性大
- 错误率基本不变,说明不重要
- 错误率急剧下降,一般不会出现
- 评估标准
- 优点
- 训练
- 自举汇聚法
- 随机森林
- Boosting(串行):存在强依赖关系
- 步骤
- 对于训练集中的每个样本建立权值wi,表示对每个样本的关注度。当某个样本被误分类的概率很高时,需要加大对该样本的权值。
- 进行迭代的过程中,每一步迭代都是一个弱分类器。我们需要用某种策略将其组合,作为最终模型。(例如AdaBoost给每个弱分类器一个权值,将其线性组合最为最终分类器。误差越小的弱分类器,权值越大)
- 特点
- 优点:泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整
- 缺点:对离群点敏感
- 树的分类
- AdaBoost:面临的问题
- 训练数据权重调整的策略
- 弱分类器结果的组合策略
- XgBoost
- AdaBoost:面临的问题
- 步骤
- Stacking 堆叠模型:聚合多个分类或者回归模型(可以分阶段进行)
- 步骤
- 通过多个模型,获取多个结果(每个模型一个结果)
- 通过一个模型,输入上一步的结果,输出最终结果
- 特点
- 一般在竞赛中使用,实际工程中很少使用
- 步骤
- Bagging(并行):不存在强依赖关系