机器学习入门课程(2)—— 分类问题(决策树、贝叶斯、VSM、逻辑回归、集成学习)

分类问题

分类问题是监督学习的一个核心问题,它从数据中学习一个分类决策函数或分类模型(分类器),对新的输入进行输出预测,输出变量取有限个离散值。

  • 包括二分类问题/多分类问题。
  • 算法:决策树、贝叶斯、支持向量机SVM、逻辑回归

一 决策树

  • 决策树:树结构,每个非叶节点表示一个特征属性,每个分支边代表这个特征属性在某个值域上的输出,每个叶节点存放一个类别。
  • 决策过程:从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
  • 构建决策树的方法:
    • 特征选择:选取对训练数据具有分类能力的特征;
      • 信息熵:不确定性。
      • 信息增益:信息熵(前)- 信息熵(后)
      • 信息增益比:惩罚参数*信息增益。特征个数较多时,惩罚参数较小。
      • 基尼指数:表示集合的不确定性,基尼系数越大表示不平等程度越高。
    • 决策树生成:在决策树各个点上按照一定方法选择特征,递归构建决策树;
    • 决策树剪枝:在已生成的树上剪掉一些子树或者叶节点,从而简化分类树模型,使得模型泛化能力更强。
      • 理想决策树:叶子节点最少、叶子节点深度最小、叶子节点数最少且深度最小。
      • 预剪枝:通过提前停止树的构建而对树剪枝,一旦停止,节点就是叶子,该叶子持有子集中最频繁的类。
      • 后剪枝方法(常用):首先构造完整的决策树,然后对那些置信度不够的节点子树用叶子节点代替,该叶子的类标号用该节点子树中最频繁的类标记。
  • 核心算法:——模型、树结构、特征选择系数
    • ID3算法:分类,多叉树,信息增益
    • C4.5算法:分类,多叉树,信息增益比
    • CARD算法:分类、回归,二叉树,基尼系数、均方差

二 贝叶斯

贝叶斯分类是基于贝叶斯定理和属性特征条件独立性的分类方法。核心是贝叶斯公式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F9ZI63hS-1583900698217)(file:///C:\Users\SHERRY~1\AppData\Local\Temp\ksohtml564\wps1.png)]

  • 计算过程

    • 计算先验概率;
    • 为每个属性计算条件概率;
    • 计算后验概率。
  • 拉普拉斯修正:先验概率、条件概率

  • 优点:

    • 算法逻辑简单,易于实现;
    • 分类过程中时空开销小。
  • 缺点:

    ​ 理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率,但是实际上并非总是如此。这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往不成立,在属性个数较多或者属性之间相关性较大时,分类效果不好。

三 支持向量机(SVM)分类

  • 支持向量机是一种有监督学习方法,主要思想是建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。
    • 增加惩罚系数就可以形成软间隔,针对不可完全线性可分的情况。
    • 通过核函数的映射增加维度,从而可分。核函数有线性、多项式、高斯、混合核函数。
  • 优点:
    • 相对于其他训练分类算法不需要过多样本,并且由于SVM引入了核函数,因此可以处理高维样本;
    • 结构风险最小。这种风险是指分类器对问题真实模型的逼近与问题真实解之间的累计误差;
    • 非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也叫惩罚变量),和核函数技术实现,这一部分也正是SVM的精髓。

四 逻辑回归(Logistic)

  • 逻辑回归是分类算法,可以处理二元分类和多元分类。分别使用二项/多项逻辑回归模型。

  • 首先逻辑回归构造广义的线性回归函数,然后使用sigmoid函数g(z)将回归值映射到离散类别。

    sigmoid函数:在中心附近增长速度快,两端增长速度较慢,取值在0 1之间。

  • 损失函数的选择:对数似然损失函数。下降较快,是最大熵模型的特殊情况。

  • 最大熵模型:保留全部的不确定性,将风险降低到最小。对一个随机事件的概率分布进行预测时,应当满足全部已知条件,对未知的情况不要做任何主观假设。

    特点:

    • 形式上简单优美;
    • 效果上是唯一 一种既能满足各个信息源限制条件又能保证平滑性的模型;
    • 计算量巨大,在工程中实现方法的好坏决定了模型的实用与否。

五 集成学习

  • 定义:通过将多个弱分类器集成在一起,使他们共同完成学习任务,构建一个强分类器

  • 两类方法:

    • Bagging(Bootstrap aggregating):基于数据随机重抽样的分类器构建方法
      • 采取有放回抽样得到N个数据集
      • 在每个数据集上学习出一个模型
      • 利用N个模型的输出投票得到最后的预测结果
    • Boosting(提升方法):基于错误提升分类器性能,通过集中关注被已有分类器分类错误的样本,构建新分类器。
      • 初始分布应为等概分布;
      • 每次循环后提高错误样本的分布概率,分错的样本在训练集中所占权重增大,使得下一次循环的基分类器能够集中力量对这些错误样本进行判断;
      • 计算分类器的权重,识别率越高的基分类器权重越高。
  • 不同点

    • Bagging中每个训练集互不相关,也就是每个基分类器互不相关,而Boosting中训练集要在上一轮的结果上进行调整,也使得其不能并行计算。
    • Bagging中预测函数是均匀平等的,但在Boosting中预测函数是加权的
  • 优点:当前最先进的预测几乎都使用了算法集成,它比使用单个模型预测出来的结果精确的多,在各大竞赛中得到了普遍应用。

  • 缺点:需要大量的维护工作
    在Boosting中预测函数是加权的

  • 优点:当前最先进的预测几乎都使用了算法集成,它比使用单个模型预测出来的结果精确的多,在各大竞赛中得到了普遍应用。

  • 缺点:需要大量的维护工作

  • 代表算法:随机森林、Adboost

发布了76 篇原创文章 · 获赞 30 · 访问量 5832

猜你喜欢

转载自blog.csdn.net/weixin_45926367/article/details/104794045