机器学习分类算法-实践:鸢尾花分类

分类问题

  • 分类在我们日常生活中很常见

    • 二分类问题
    • 多分类问题

核心算法

  • 决策树
  • 贝叶斯
  • SVM
  • 逻辑回归

决策树

决策树(decision tree)

  • 树状结构
  • 非叶节点:对应一个特征属性,每个分支边代表这个特征属性在某个值域上的输出
  • 叶节点:对应一个类别

决策过程

  • 根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。

构建决策树

给定训练数据,如何构建决策树呢?

  • 特征选择:选取对训练数据具有分类能力的特征
  • 决策树生成:在决策树各个点上按照一定方法选择特征,递归构建决策树
  • 决策树剪枝:在已生成的树上减掉一些子树或者叶节点,从而简化分类树模型

如何选择分裂特征

  • ID3算法
  • C4.5算法
  • CART算法

贝叶斯分类

简介

​ 贝叶斯分类是基于贝叶斯定理特征条件独立性的分类方法,贝叶斯流派的核心思想

  • Probability theory is nothing but common sense reduced to calculation.
  • 概率论只不过是把常识用数学公式表达了出来。——拉普拉斯
  • 先验概率:你同桌没有任何症状的情况下可能得感冒的概率是多少?
  • 条件概率:如果你同桌感冒了, 那么他会打喷嚏的概率是多少? 如果他没感冒, 出现打喷嚏症状的概率有多少?
  • 后验概率:你同桌打了个喷嚏,那么他感冒的概率是多少?

公式

  • 贝叶斯公式
  • 推广到多个类别
  • 朴素贝叶斯

SVM(支持向量机)

引入

​ 在很久以前的情人节,大侠要去救他的爱人,但魔鬼和他玩了一个游戏…

深入理解

  • 直观理解:对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度 (confidence)也越大。
  • 支持向量机:中间直线就是分类超平面,不难发现,用来确定这条直线其实只需要两条虚线上的五个点就够了。

支持向量机的分类

  • 硬间隔支持向量机:必须划分准确
  • 软间隔支持向量机:允许某些划分可以不用那么准确

非线性支持向量机与核函数

​ SVM的一个重要的问题就是我们如何去变换空间,就像刚才的例子,一拍桌子,就将球从一个2D的分类变成了一个更高维更复杂的空间当中。

​ 对于非线性的情况,SVM的处理方法是选择一个核函数,通过将数据映射到一个高维空间,去解决数据在原始空间线性不可分的问题,我们可以使用的核函数如下:

SVM的优点

  • 相对于其他分类算法不需要过多样本,并且由于SVM引入了核函数,所以SVM可以处理高维样本。
  • 结构风险最小,这种风险是指分类器对问题真实模型的逼近与问题真实解之间的累积误差。
  • 非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也叫惩罚变量)和核函数技术来实现,这一部分也正是SVM的精髓所在。

处理多分类问题

  • 一对多法(one-versus-rest,简称OVR SVMs)
    • 训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类
    • k个SVM:分类时将未知样本分类为具有最大分类函数值的那类
  • 一对一法(one-versus-one,简称OVO SVMs或者pairwise)
    • 在任意两类样本之间设计一个SVM
    • k(k-1)/2个SVM
    • 当对一个未知样本进行分类时,最后得票最多的类别即为该未知样本的类别
  • 层次支持向量机
    • 层次分类法首先将所有类别分成两个子类,再将子类进一步划分成两个次级子类,如此循环,直到得到一个单独的类别为止。

逻辑回归