数据挖掘(六)分类

分类

什么是分类?

假设:

  • 银行贷款员需要对其数据进行分析,以了解贷款申请人对银行而言“安全”还是“风险”;
  • 电子商店的营销经理需要分析数据来猜测客户是否会购买新计算机;
  • 医学研究人员希望预测患者应接受的三种特殊治疗中的哪一种

这里,数据分析任务就是分类,建立模型是用来预测类别(标签)

  • 贷款数据的“安全”或“风险”;
  • 营销数据为“是”或“否”;
  • 医疗数据的“治疗A”,“治疗B”或“治疗C”

类别标签是字符串标签或无顺序的离散值

分类和数值预测

假设营销经理要预测给定客户在销售期间的花费

这里,数据分析任务就是数值预测,建立模型是以预测连续值函数

  • 结果与类标签相反;
  • 和分类不同;
  • 回归分析通常用于数值预测;

简单来说:
分类和预测是两种使用数据进行预测的方式,可用来确定未来的结果。

分类是用于预测数据对象的离散类别的,需要预测的属性值是离散的、无序的。

预测则是用于预测数据对象的连续取值的,需要预测的属性值是连续的、有序的。

监督 VS 无监督学习

  • Supervised learning (针对分类:classification)

    训练数据(观测,测量等)均附有表明观测类别的标签,是已知的;
    可以根据训练集对新数据进行分类。

  • Unsupervised learning (针对聚类:clustering)

    训练数据集的类别标签未知的;
    给定一组测量值,观察值等,目的是确定数据中是否存在classes或clusters。

分类过程

分类是通过有指导的学习训练建立分类模型,并使用模型对未知分类的实例进行分类。分类输出属性是离散的、无序的。

预定的数据集分为两组独立的训练数据和测试数据。

在这里插入图片描述
分类就是通过对已有数据集(训练集)的学习,得到一个目标函数 f(模型),来把每个属性集 X 映射到目标属性 y(类)上(y 必须是离散的)。

分类过程是一个两步的过程:第一步是模型建立阶段,或者称为训练阶段,第二步是模型使用也为评估阶段。

  1. 模型建立 描述一组预定的类:

    分类算法构造模型通过分析(学习)训练数据;
    该模型表示为分类规则,决策树或数学公式。

  2. 模型使用 对未来或未知目标进行分类:

    用来评估模型准确性,如果准确度可以接受,使用模型来对未知数据进行分类,具体为:

    模型将测试元组的已知标签与分类结果进行比较;
    准确率是模型中正确分类的测试元组的百分比;
    测试集独立于训练集(否则过度拟合)。

在这里插入图片描述
在这里插入图片描述

决策树

决策树介绍

  • 决策树(Decision Tree,DT)分类法是一个简单且广泛使用的分类技术。

  • 决策树是一个类流程图 树,因此是一个数状预测模型:
    树中包含3种结点:根结点、内部结点和叶子结点。决策树只有一个根结点,是全体训练数据的集合;
    内部节点针对于属性执行测试;
    节点的分支代表预测结果;
    叶节点包含类别标签;
    可以轻松转换为分类规则。

  • 决策树如何用于分类?跟据属性判断决策结果。
    对于给定的未知元组X,针对树来测试其属性值;
    从根到叶的路径表示X的类别。

决策树示例

使用决策树进行决策的过程就是,从根结点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子结点,将叶子结点存放的类别作为决策结果。

下图是一个预测一个人是否会购买电脑的决策树。利用这棵树,可以对新记录进行分类。从根结点(年龄)开始,如果某个人的年龄为中年,就直接判断这个人会买电脑,如果是青少年,则需要进一步判断是否是学生,如果是老年,则需要进一步判断其信用等级。在这里插入图片描述
假设客户甲具备以下 4 个属性:年龄 19、低收入、是学生、信用一般。通过决策树的根结点判断年龄,判断结果为客户甲是青少年,符合左边分支,再判断客户甲是否是学生,判断结果为用户甲是学生,符合右边分支,最终用户甲落在“yes”的叶子结点上。所以预测客户甲会购买电脑。

决策树算法

基本算法是greedy算法。

数的建立是以自上而下的递归分治方式:

  • 树从包含所有训练数据的单个节点开始;
  • 选择最佳属性,splitting criterion(分裂条件)来执行测试;
  • 从观察到的元组的属性列表中排除不合适的分裂条件;
  • 用分割条件来标注节点,节点的分支即为节点的测试结果(划分观察到的元组);
  • 该算法在每个分支中的现有元组上递归执行;
  • 终止:
    节点中的所有元组都属于同一类;
    属性列表为空,然后将节点标记为具有其元组最常见类的叶子节点;
    分支为空,然后将以多数投票标记的叶子附加到该节点。

下图表示为划分元组的可能性:
在这里插入图片描述

  • ( a )
    A是离散的;
    A的每一个值表示为一个分支
  • ( b )
    A是连续的;
    两个分支基于“分裂点”
  • ( c )
    A是离散的并且为二分类;
    两个分支基于A的“分裂子集”

特征选择

按照贪婪算法建立决策树时,首先需要进行特征选择,也就是使用哪个特征作为分裂条件。选择一个合适的特征作为分裂条件,可以加快分类的速度,减少决策树的深度。

特征选择的措施

一种选择分裂条件的方法来最佳划分给定训练样本;

  • 特征选择的目标就是使得分类后的数据集比较纯,理想情况下,给定分区中的所有样本都属于同一类(纯净分区)

给每一个存在的特征一个分数;

有较高分或者最高分的那个特征被选择为分裂条件;

针对特征,得到分割点或者分裂子集;

如何衡量上述的分数?

  • 例如information gain(信息增益),gain ration(增益比)和(Gini系数)

特征选择方法:

选取具有最高信息增益的特征;

  • 信息是个很抽象的概念。人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。
  • Entropy(信息熵)解决了对信息的量化度量问题。

设pi为D中的元组属于C类的概率为:
∣ C i , D ∣ / ∣ D ∣ |C_i,_D| / |D| Ci,D/D

对D中的元组进行分类所需的Expected information(entropy):
i n f o ( D ) = − ∑ i = 1 m p i l o g 2 ( p i ) info(D) = - \sum_{i=1}^{m}p_ilog_2(p_i) info(D)=i=1mpilog2(pi)

通过使用A在v分区将D分类的信息:
i n f o A ( D ) = ∑ j = 1 v D j D ∗ i n f o ( D j ) info_A(D) = \sum_{j=1}^{v}\frac{D_j}{D} * info(D_j) infoA(D)=j=1vDDjinfo(Dj)

通过分支特征A获得信息增益:
G a i n ( A ) = i n f o ( D ) − i n f o A ( D ) Gain(A) = info(D) - info_A(D) Gain(A)=info(D)infoA(D)

Information Gain (ID3)

当选择某个特征对数据集进行分类时,分类后的数据集的信息嫡会比分类前的小,其差值表示为信息增益。信息增益可以衡量某个特征对分类结果的影响大小。

ID3 算法使用信息增益作为属性选择度量方法,也就是说,针对每个可以用来作为树结点的特征,计算如果采用该特征作为树结点的信息增益。然后选择信息增益最大的那个特征作为下一个树结点。

在这里插入图片描述

  • 特征age具有最高的信息增益,因此被选作分裂条件

计算连续值型特征的信息增益

假设特征A为连续值型特征(例如薪水,年龄)

必须确定A的最佳分裂点:

  • 按升序对值进行排序;
  • 每对相邻值之间的中点被视为可能的分裂点;
  • 为每个可能的分裂点计算infoD(A)(分区数为2)
  • 选择有最小的infoD(A)的点为分裂点

然后,把D分为两部分:

  • D1是满足A≤split-point的元组集合,而D2是满足满足A>split-point的元组集合

Gain Ratio (C4.5)

  • 信息增益偏向具有大量值的特征(例如:导致大量的纯分区)
    特征product_id的信息增益为max; 无用

  • Gain Ratio : 由C4.5(ID3的后继者)使用以克服该问题(标准化增益)
    S p l i t I n f o A ( D ) = − ∑ j = 1 v ∣ D j ∣ ∣ D ∣ ∗ l o g 2 ∣ D j ∣ ∣ D ∣ SplitInfo_A(D) = - \sum_{j=1}^{v}\frac{|D_j|}{|D|} * log_2\frac{|D_j|}{|D|} SplitInfoA(D)=j=1vDDjlog2DDj
    G a i n R a t i o ( A ) = G a i n ( A ) / S p l i t I n f o A ( D ) GainRatio(A) = Gain(A) / SplitInfo_A(D) GainRatio(A)=Gain(A)/SplitInfoA(D)

  • 例如:
    在这里插入图片描述

  • 选择具有最大增益比率的特征作为分裂特征

Gini Index (CART)

  • 测量D的不纯度
    G i n i ( D ) = 1 − ∑ i = 1 m p i 2 Gini(D) = 1- \sum_{i=1}^{m}p_i^2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kxwang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值