数据挖掘导论 笔记4

分类 (classification)
分类任务 就是通过学习得到一个目标函数(target function)f,把每个属性集x映射到一个预先定义的类标号y。目标函数也称分类模型(classfication model).分类模型可以用于以下目的。
关键是结果是离散的。这正是区别分类与回归(regression) 的关键特征。回归是一种预测建模任务,其中目标属性y是连续的。
比如Support Vector Regression和Support Vector Machine:

  1. SVR:输出wx+b,即某个样本点到分类面的距离,是连续值, 所以是回归模型
  2. SVM:把这个距离用sign()函数作用,距离为正(在超平面一侧)的样本点是一类, 为负的是另一类,所以是分类模型。
    描述性建模分类模型可以作为解释性的工具,用于区分不同类中的对象。
    数据挖掘导论 笔记4_第1张图片
    预测性建模
    分类模型还可以用于预测未知记录的类标号。如图,分类模型可以看作是一个黑箱,当给定未知记录的属性集上的值时,它自动地赋予未知样本类标号。例如,假设有一种叫作毒蜥(gila monster)的生物,其特征如下:
    在这里插入图片描述
    在这里插入图片描述
    分类技术非常适合预测或描述二元或标称类型的数据集
    对于序数分类(例如,把人分类为高收入、中等收入或低收入组),分类技术不太有效,因为分类技术不考虑隐含在目标类中的序关系。其他形式的联系,如子类与超类的关系( 例如,人类和猿都是灵长类动物,而灵长类是哺乳类的子类)也被忽略。本章余下的部分只考虑二元的或标称类型的类标号。这一章不考虑这个问题
    分类问题一般方法
    分类技术(或分类法)是一种根据输入数据集建立分类模型的系统方法。使用一种学习算法(learning algorithm) 确定分类模型,该模型能够很好地拟合输入数据中类标号和属性集之间的联系。学习算法得到的模型不仅要很好地拟合输入数据,还要能够正确地预测未知样本的类标号。因此,训练算法的主要目标就是建立具有很好的泛化能力模型,即建立能够准确地预测未知样本类标号的模型
    一般方法:首先,需要一个训练集(raining set),它由类标号已知的记录组成。使用训练集建立分类模型,该模型随后将运用于检验集(test set),检验集由类标号未知的记录组成
    数据挖掘导论 笔记4_第2张图片
    分类模型的性能根据模型正确和错误预测的检验记录计数进行评估,这些计数存放在称作混淆矩阵(confusion matrix)的表格中。描述二元分类问题的混淆矩阵。表中每个表项fij表示实际类标号为i但被预测为类j的记录数.
    数据挖掘导论 笔记4_第3张图片
    数据挖掘导论 笔记4_第4张图片
    在这里插入图片描述
    决策树归纳
    在决策树中,每个叶结点都赋予一个类标号 。
    数据挖掘导论 笔记4_第5张图片
    数据挖掘导论 笔记4_第6张图片
    由于最优决策树搜索空间是指数规模的,所以找出最佳决策树在计算上是不可行的。尽管如此,人们还是开发了一些有效的算法,能够在合理的时间内构造出具有一定准确率的次最优决策树。
    Hunt算法
    在Hunt算法中,通过将训练记录相继划分成较纯的子集,以递归方式建立决策树。设Dt是
    与结点t相关联的训练记录集,而y= {y1, y2,"", yc}是类标号, Hunt算法的递归定义如下。
    (1)如果D,中所有记录都属于同一个类y,则t是叶结点,用yt标记。
    (2)如果D,中包含属于多个类的记录,则选择一个属性测试条件(attribute test condition),将记录划分成较小的子集。对于测试条件的每个输出,创建一个子女结点,并根据测试结果将Dt中的记录分布到子女结点中。然后,对于每个子女结点,递归地调用该算法。
    数据挖掘导论 笔记4_第7张图片
    数据挖掘导论 笔记4_第8张图片
    需要考虑的问题
    (1)算法的第二步所创建的子女结点可能为空,即不存在与这些结点相关联的记录。如果没有一个训练记录包含与这样的结点相关联的属性值组合,这种情形就可能发生。这时,该结点成为叶结点,类标号为其父结点上训练记录中的多数类。
    (2) 在第二步,如果与Dt相关联的所有记录都具有相同的属性值(目标属性除外),则不可能进一步划分这些记录。在这种情况下,该结点为叶结点,其标号为与该结点相关联的训练记录中的多数类。
    (3)算法的第二步所创建的子女结点可能为空,即不存在与这些结点相关联的记录。如果没有一个训练记录包含与这样的结点相关联的属性值组合,这种情形就可能发生。这时,该结点成为叶结点,类标号为其父结点上训练记录中的多数类。
    (4) 在第二步,如果与Dt相关联的所有记录都具有相同的属性值(目标属性除外),则不可能进一步划分这些记录。在这种情况下,该结点为叶结点,其标号为与该结点相关联的训练记录中的多数类。
    不纯性度量
    数据挖掘导论 笔记4_第9张图片
    如此例所示,越纯越小。
    数据挖掘导论 笔记4_第10张图片
    对于多路划分还需要加权
    数据挖掘导论 笔记4_第11张图片
    如此例,gini11/2+gini21/2=fin_gini

ID3 C4.5决策树区别
首先用根节点代表一个给定的数据集;然后从根节点开始(包括根节点)在每个节点上通过一个规则选择一个属性,使结点数据集划分(一棵树分裂为几棵树)为更小的子集(子树);直到使用某个属性,其子集中所有样本都属于一个类别,才停止分裂。
对于这个规则,两者都是通过计算信息增益率,
在这里插入图片描述
在这里插入图片描述
gain(ID3)=info(根结点)-info(各个结点之和)
在这里插入图片描述
在这里插入图片描述
分叉越多splitInfo越大
对上面的gain除以splitInfo进行惩罚。
连续属性的划分
排一遍序效率会高,因为可以已知划分点左右的数据个数,不用每次都遍历一遍
o(nlogn+n)
数据挖掘导论 笔记4_第12张图片
增益率
在这里插入图片描述Δinfo是增益在这里插入图片描述
这里就把分支个数考虑了进去,例如,如果每个属性值具有相同的记录数,则任意i: P(vi)= 1/k, 这个i的划分信息等于log2k。这说明如果某个属性产生了大量的划分,它的划分信息将会很大,从而降低了增益率。
决策树归纳算法

泛化误差估计
悲观误差剪枝

过分拟合
噪声会导致过分拟合,比如把鲸鱼错记成非哺乳动物
数据挖掘导论 笔记4_第13张图片
会出现m1的情况,四条腿的分裂是错误的,分叉多的树训练误差低但是检验误差高。
缺乏代表性样本导致的过分拟合
数据挖掘导论 笔记4_第14张图片
由于不具有代表性,导致冬眠和四条腿优先于胎生去分裂,这就又导致过分拟合。
多重比较(Mulitple Comparition)
股票分析师预测股票涨或跌。假设分析师都是靠随机猜测,也就是他们正确的概率是0.5。每一个人预测10次,那么预测正确的次数在8次或8次以上的概率为 0.0547,只有5%左右,比较低。但是如果50个分析师,每个人预测10次,选择至少一个人得到8次或以上的人作为代表,那么概率为 0.9399,概率十分大,随着分析师人数的增加,概率无限接近1。但是,选出来的分析师其实是蒙的,他对未来的预测不能做任何保证。上面这个例子就是多重比较。这一情况和决策树选取分割点类似,需要在每个变量的每一个值中选取一个作为分割的代表,所以选出一个噪音分割标准的概率是很大的。
评估分类器的性能
将原始数据分成训练集和检验集,划分后的预测效果需要评估。有如下几种方法。
保持方法
在保持(Holdout) 方法中,将被标记的原始数据划分成两个不相交的集合,简单粗暴
保持方法有一些众所周知的局限性。第一,用于训练的被标记样本较少,因为要保留一部分记录用于检验,因此,建立的模型不如使用所有被标记样本建立的模型好。第二,模型可能高度依赖于训练集和检验集的构成。一方面, 训练集越小,模型的方差越大,另一方面,如果训练集太大,根据用较小的检验集估计的准确率又不太可靠。这样的估计具有很宽的置信区间。最后,训练集和检验集不再是相互独立的。因为训练集和检验集来源于同一个数据集,在一个子集中超出比例的类在另一个子集就低于比例,反之亦然。
交叉验证
假设把数据分为相同大小的两个子集,选择一个子集作训练集,而另一个作检验集,然后交换两个集合的角色,原先作训练集的现在做检验集,反之亦然,这种方法叫二折交叉验证。总误差通过对两次运行的误差求和得到。

在这个例子中,每个样本各作一次训练样本和检验样本。k折交叉验证是对该方法的推广,把数据分为大小相同的k份,在每次运行,选择其中一份作检验集,而其余的全作为训练集,该过程重复k次,使得每份数据都用于检验恰好一次。同样,总误差是所有k次运行的误差之和。k折交叉验证方法的一种特殊情况是令k = N,其中N是数据集的大小,在这种所谓留一(leave-one-out)方法中,每个检验集只有一个记录。该方法的优点是使用尽可能多的训练记录,此外,检验集之间是互斥的,并且有效地覆盖了整个数据集;该方法的缺点是整个过程重复N次,计算开销大。

自助法
在自助(bootstrap) 方法中,训练记录采用有放回抽样,即已经选作训练的记录将放回原来的记录集中,使得它等机率地被重新抽取。如果原始数据有N个记录,可以证明,平均来说,大小为N的自助样本大约包含原始数据中63.2%的纪录。这是因为一个记录被自助抽样抽取的概率是1-(1- 1/N)^n
当N充分大时,该概率逐渐逼近1 -e^-1= 0.632。没有抽中的记录就成为检验集的一部分,将训练集建立的模型应用到检验集上,得到自助样本准确率的一一个估计E。抽样过程重复b次,产生b个自助样本。
按照如何计算分类器的总准确率,有几种不同的自助抽样法。常用的方法之一是.632自助(.632 bootstrap), 它通过组合每个自助样本的准确率(e) 和由包含所有标记样本的训练集计算.。其结果是:在平均情况下,63.2%原始数据元组将出现在自助样本中,而其他36.8%的元组将形成检验集。
模型的准确率如下
在这里插入图片描述
Acc(Mi)test_set是自助样本 i 得到的模型用于检验集 i 的准确率。Acc(Mi)train_set是自助样本 i 得到的模型用于原数据元组集的准确率。
原博客
比较分类器的方法
比较不同分类器的性能,以确定在给定的数据集上哪个分类器效果更好是很有用的。但是,依据数据集的大小,两个分类器准确率上的差异可能不是统计显著的。比如考虑一对分类模型Ma和Mb。假设Ma在包含30个记录的检验集上的准确率达到85%,而Mb在包含5 000个记录的不同检验集上达到75%的准确率,但是Ma未必比Mb好。
估计准确度的置信区间
二项式实验的一个例子是统计N次抛硬币正面朝上的次数。如果X是N次试验观察到的成功次数,则X取一个特定值v的概率由均值为Np、方差为Np(1-p)的二项分布给出:
在这里插入图片描述
预测检验记录类标号的任务也可以看作是二项式实验。那就可以去得到置信区间
置信区间介绍
在这里插入图片描述
推导出
在这里插入图片描述
acc是计算出的准确率,N是检验次数,Za由你选择的置信水平决定。
数据挖掘导论 笔记4_第15张图片
代入上述公式即可得到置信区间。
比较两个模型的性能
之后我们就可以比较两个模型的性能
考虑一对模型M1和M2,它们在两个独立的检验集D1和D2上进行评估,令n1是D1中的记录数,n2是D2中的记录数。另外,假设M1在D1上的错误率为e1, M2在D2上的错误率为e2。目标是检验e1与e2的观察差|e1-e2|是否是统计显著的。

假设n1和n2都充分大,e1和e2可以使用正态分布来近似。如果用d=en-er表示错误率的观测差,则d服从均值为dh (其实际差)、方差为σ的正态分布。d的方差为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
利用两个公式进行计算。
比较两种分类法的性能
假设我们想用k折交义验证的方法比较两种分类法的性能。首先,把数据集D划分为k个大小相等部分,然后,使用每种分类法,在k- 1份数据上构建模型,并在剩余的划分上进行检验,这个步骤重复k次,每次使用不同的划分进行检验。
数据挖掘导论 笔记4_第16张图片

你可能感兴趣的:(笔记)