数据分类

  • 数据分类的定义
  • 分类过程
  • 1 获取数据
  • 2 预处理
  • 3 分类器设计
  • 4 分类决策
  • 分类评价准则
  • 精确度
  • 查全率&查准率
  • F-measure
  • 几何均值(G-mean)
  • 决策树
  • 决策树算法 ID3
  • 先验概率
  • 信息熵 : 信息量的期望值
  • 由属性 A f A_f Af
  • 信息增益
  • 决策树算法 ID4.5
  • ID4.5算法的优点
  • 支持向量机
  • 总结


数据分类的定义

把数据样本映射到一个事先定义的类的过程

即是说:
给定一组用于输入的属性向量以及各向量所属的各类,用基于归纳的学习算法得出分类标准.

用这个分类标准对你新给出的属性向量进行分类,使正确率最高

要注意的事儿 :
用于分类的 属性值可以是连续的
但 , 只能分类到离散的类 .


分类过程

1 获取数据

定义 : 获取一组向量以及各向量所属的类

2 预处理

定义 : 对你所获取的向量进行处理

预处理包括

1 . 去除噪声数据,对空值进行处理

2 . 数据集成或者变换(消除冗余数据,对数据降维)得到最能反映数据特性的特征数据空间

注释 :
"2."其实就是把向量中一些对分类影响不大的数据维度给去掉,就比如你的姓名与你的工资的联系不大,那么你就可以把姓名这个维度去掉.

3 分类器设计

过程如下:
1 . 划分数据集.

将数据集划分为训练集测试集

训练集 用于 对数据分类器进行训练,就是用于学习的数据

测试集 用于 对已经经过学习的分类器进行评测

2 . 分类器构造

就是用训练集通过分析每个样本自己所带有的各属性值还有所属的类别
总结规律 挖掘出判别规则
[具体用什么方法,后面介绍]

3 . 分类器测试

(1)利用构造好的分类器对测试集进行分类
(2)用测试集自己的类别和分类器分类的类别进行对比 , 从而得到分类器的性能

4 分类决策

当这个分类器满足了你的分类标准 , 就可以用它来进行分类决策了


分类评价准则

给定测试集深度学习 对数据的分类算法_深度学习 对数据的分类算法[这里的N表示测试集中样本个数]
深度学习 对数据的分类算法_数据_02 表示测试集中数据样本
深度学习 对数据的分类算法_分类算法_03 表示 深度学习 对数据的分类算法_数据_02 的类标号
假设共有深度学习 对数据的分类算法_深度学习 对数据的分类算法_05个类别,那么深度学习 对数据的分类算法_数据_06

假设 对于测试集的 深度学习 对数据的分类算法_数据_07
被正确分类为 深度学习 对数据的分类算法_分类算法_08 类的样本数量为 深度学习 对数据的分类算法_深度学习 对数据的分类算法_09
被错误分类为 深度学习 对数据的分类算法_分类算法_08 类的样本数量为 深度学习 对数据的分类算法_深度学习 对数据的分类算法_11
本属于其他类别 但被分为为 深度学习 对数据的分类算法_分类算法_08 类的样本数量为 深度学习 对数据的分类算法_数据集_13

精确度

就是正确分类的样本所占比例
深度学习 对数据的分类算法_预处理_14

查全率&查准率

对于第 深度学习 对数据的分类算法_分类算法_08

查全率 深度学习 对数据的分类算法_数据_16 表示在 本类样本中 , 被正确分类的样本所占的比例
深度学习 对数据的分类算法_数据集_17

查准率 深度学习 对数据的分类算法_数据集_18 表示 被分类为该类的样本中 , 真正属于该类样本所占的比例

深度学习 对数据的分类算法_分类算法_19

F-measure

这是 查全率查准率 的组合表达式 , 可以比较合理的评价分类器对每一类样本的分类性能
深度学习 对数据的分类算法_数据_20
这里的 深度学习 对数据的分类算法_预处理_21

几何均值(G-mean)

深度学习 对数据的分类算法_预处理_22

这个评价准则非常有效 , 能够合理评价分类性能 .

是各个类别查全率的乘积的平方根 .

当各个类别的查全率都大时 , G-mean才相应增大 , 它同时兼顾了各个类别的分类精度 .


决策树

就是以给定数据样本为基础的归纳学习方法 .

决策树算法 ID3

这里是B站上以为阿婆主的视频链接 => ID3决策树算法讲解[11分钟40秒]

B站上南开大学决策树算法的链接 => 系统化学习决策树

1 . 只能处理离散数据
2 . 采用 信息增益 作为选择根节点和分支结点的度量标准

假定给定的数据集
深度学习 对数据的分类算法_预处理_23

样本
深度学习 对数据的分类算法_预处理_24深度学习 对数据的分类算法_数据_25 维特性向量 深度学习 对数据的分类算法_分类算法_26 表示

深度学习 对数据的分类算法_数据集_27 分别对应 深度学习 对数据的分类算法_数据_25 个描述属性 深度学习 对数据的分类算法_数据集_29

就是说

深度学习 对数据的分类算法_数据_30
深度学习 对数据的分类算法_数据集_31
深度学习 对数据的分类算法_数据_32
.
.
.
深度学习 对数据的分类算法_数据集_33

深度学习 对数据的分类算法_数据集_34表示样本深度学习 对数据的分类算法_数据_02的类标号

假设要研究的问题含有 深度学习 对数据的分类算法_预处理_36 个类
那么 深度学习 对数据的分类算法_数据集_37


先验概率

假设 深度学习 对数据的分类算法_数据集_38 是数据集 X 中 属于类别 深度学习 对数据的分类算法_分类算法_39 的样本数量 , 则 各个类别的先验概率
深度学习 对数据的分类算法_深度学习 对数据的分类算法_40


信息熵 : 信息量的期望值

对信息量的描述可以看这位博主的文章 : 信息熵

这里还有B站上一位阿婆主的视频信息量与信息熵

对给定的数据集 深度学习 对数据的分类算法_预处理_41 分类所需的 信息熵

为:
深度学习 对数据的分类算法_分类算法_42
这里就是将
分类为 深度学习 对数据的分类算法_分类算法_39 类的概率 深度学习 对数据的分类算法_数据集_44

与 , 分类为 深度学习 对数据的分类算法_分类算法_39 所需要的信息量个数为 深度学习 对数据的分类算法_分类算法_46 比特

相乘 ,再相加, 所得的就是,分类为 深度学习 对数据的分类算法_分类算法_39

深度学习 对数据的分类算法_数据集_48

最后 深度学习 对数据的分类算法_数据_49

为什么是取对2为底的对数呢?
答: 这里可以取任何大一1的数,但通常取2或者自然对数深度学习 对数据的分类算法_深度学习 对数据的分类算法_50.
但是当我们取2为底的时候构建决策树就可以以二分的思维构建,就是说 : 不是这个,那必然是另一个.这有利于我们构建决策树.


由属性深度学习 对数据的分类算法_数据集_51

设属性 深度学习 对数据的分类算法_预处理_52深度学习 对数据的分类算法_深度学习 对数据的分类算法_53 个不同取值分别为 深度学习 对数据的分类算法_深度学习 对数据的分类算法_54

深度学习 对数据的分类算法_预处理_55

{

即 :
深度学习 对数据的分类算法_深度学习 对数据的分类算法_56
深度学习 对数据的分类算法_深度学习 对数据的分类算法_57
深度学习 对数据的分类算法_分类算法_58 [这里表示深度学习 对数据的分类算法_数据_59深度学习 对数据的分类算法_深度学习 对数据的分类算法_60属性跟深度学习 对数据的分类算法_数据_61深度学习 对数据的分类算法_深度学习 对数据的分类算法_60属性相同 , 比如两个人的工资相同]
深度学习 对数据的分类算法_深度学习 对数据的分类算法_63
.
.
.
深度学习 对数据的分类算法_数据_64

每个数据样本的 深度学习 对数据的分类算法_深度学习 对数据的分类算法_65 属性 都 属于 深度学习 对数据的分类算法_深度学习 对数据的分类算法_66

}

利用描述属性 深度学习 对数据的分类算法_数据集_51 可以把数据集 深度学习 对数据的分类算法_预处理_41 划分为 深度学习 对数据的分类算法_深度学习 对数据的分类算法_53 个子集 深度学习 对数据的分类算法_数据_70
{

即 : 假设
深度学习 对数据的分类算法_数据_71
深度学习 对数据的分类算法_数据集_72
深度学习 对数据的分类算法_数据_73
.
.
.
深度学习 对数据的分类算法_数据_74

这里的 深度学习 对数据的分类算法_深度学习 对数据的分类算法_75就是 深度学习 对数据的分类算法_深度学习 对数据的分类算法_60 的不同取值所划分的 深度学习 对数据的分类算法_预处理_77

在同一子集内的数据样本 , 具有相同的 深度学习 对数据的分类算法_数据集_51

就比如 深度学习 对数据的分类算法_预处理_79 = 深度学习 对数据的分类算法_数据集_80

[这里深度学习 对数据的分类算法_预处理_81属性跟深度学习 对数据的分类算法_预处理_79属性 取值相同 , 就好比两个人的工资相同]

深度学习 对数据的分类算法_数据集_83代表一个深度学习 对数据的分类算法_预处理_77的子集
这里子集 深度学习 对数据的分类算法_数据集_83 中 , 各数据样本的 深度学习 对数据的分类算法_分类算法_86 具有相同取值

}

深度学习 对数据的分类算法_数据_87 表示子集 深度学习 对数据的分类算法_深度学习 对数据的分类算法_88

深度学习 对数据的分类算法_分类算法_89 表示子集 深度学习 对数据的分类算法_数据_90 中属于 类别 深度学习 对数据的分类算法_预处理_91

则由描述属性 深度学习 对数据的分类算法_深度学习 对数据的分类算法_60 划分数据集深度学习 对数据的分类算法_预处理_77之后所得到的 信息熵

深度学习 对数据的分类算法_分类算法_94
深度学习 对数据的分类算法_数据_95 , 代表数据样本 被划分到深度学习 对数据的分类算法_数据_90的 概率 , 表示为划分到子集深度学习 对数据的分类算法_深度学习 对数据的分类算法_88中的样本的数量与样本总数的比值.

其中
深度学习 对数据的分类算法_预处理_98

深度学习 对数据的分类算法_深度学习 对数据的分类算法_99 , 表示分类 深度学习 对数据的分类算法_数据_90 中的数据样本所 期望得到的信息量[就是信息熵].

深度学习 对数据的分类算法_深度学习 对数据的分类算法_101
深度学习 对数据的分类算法_分类算法_102

注意:
深度学习 对数据的分类算法_分类算法_94的值越小,代表用 深度学习 对数据的分类算法_深度学习 对数据的分类算法_60划分数据集纯度越高.就是说用深度学习 对数据的分类算法_深度学习 对数据的分类算法_60划分数据期望的信息量越少,代表深度学习 对数据的分类算法_深度学习 对数据的分类算法_60含有的分类数据样本的信息量越多.


信息增益

深度学习 对数据的分类算法_分类算法_107

代表 {对 深度学习 对数据的分类算法_预处理_41 分析所期望的信息量} 减去 {用 深度学习 对数据的分类算法_数据集_51 划分数据集后所得到的还期望的信息量}.
即 : {划分数据需要的信息量} - {用 深度学习 对数据的分类算法_深度学习 对数据的分类算法_60 划分数据之后还需要的信息量}.
就是说:用深度学习 对数据的分类算法_分类算法_86

得到的信息量越多 , 表明这个属性包含的信息量越多.


决策树算法 ID4.5

这是ID3算法的改进算法

ID4.5算法的优点

1 . 可以计算连续属性值的信息增益比
2 . 克服了ID3算法使用信息增益选择属性时对取值较多的属性的偏向.

深度学习 对数据的分类算法_数据_112
其中 深度学习 对数据的分类算法_数据_87 表示 深度学习 对数据的分类算法_深度学习 对数据的分类算法_88 中的样本数量
深度学习 对数据的分类算法_数据_115

深度学习 对数据的分类算法_深度学习 对数据的分类算法_116表示 划分到子集 深度学习 对数据的分类算法_深度学习 对数据的分类算法_88 的概率与划分到子集 深度学习 对数据的分类算法_深度学习 对数据的分类算法_88 所需要的的信息量之积求和
即是 : 划分数据集为深度学习 对数据的分类算法_预处理_77的属性值所划分的子集 的集合所期望的信息量


支持向量机

这个我后续会更上 , 今晚爆肝了

记2020年12月16日晨


总结

以上内容均来自陈志泊教授主编的清华大学出版社的<<数据仓库与数据挖掘(第二版)>>,欢迎大家阅读原版