数据挖掘之随机森林算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(将预测结果累加起来从而得到整个随机森林的预测结 果)
随机森林的生成规则
• 通过之前的三步就可以得到一棵决策树,重复X 次这样的过程那么就能得到X棵决策树。来一个 测试样本就对它分类一遍,就得到X个分类结果。 使用简单的投票机制(或用最终分类结果)来 判别该样本的所属类。
• 注意:两类随机性的引入对随机森林的生成至 关重要。
• 对属性进行水平分割,下面对属性集中每个属性分别 计算信息熵,如下所示:
• 1.Info(OUTLOOK) = 5/14 * [- 2/5 * log2(2/5) – 3/5 * log2(3/5)] + 4/14 * [ - 4/4 * log2(4/4) 0/4 * log2(0/4)] + 5/14 * [ - 3/5 * log2(3/5) – 2/5 * log2(2/5)] = 0.694 2.Info(TEMPERATURE) = 4/14 * [- 2/4 * log2(2/4) – 2/4 * log2(2/4)] + 6/14 * [ - 4/6 * log2(4/6) 2/6 * log2(2/6)] + 4/14 * [ - 3/4 * log2(3/4) – 1/4 * log2(1/4)] = 0.911 3.Info(HUMIDITY) = 7/14 * [- 3/7 * log2(3/7) – 4/7 * log2(4/7)] + 7/14 * [ - 6/7 * log2(6/7) 1/7 * log2(1/7)] = 0.789 4.Info(WINDY) = 6/14 * [- 3/6 * log2(3/6) – 3/6 * log2(3/6)] + 8/14 * [ - 6/8 * log2(6/8) 2/8 * log2(2/8)] = 0.892
决策树C4.5
• 定义:C4.5是决策树算法的一种。决策树算法作为一种 分类算法,目标就是将具有p维特征的n个样本分到c个 类别中去。相当于做一个投影,c=f(n),将样本经过一 种变换赋予一种类别标签。决策树为了达到这一目的, 可以把分类的过程表示成一棵树,每次通过选择一个 特征pi来进行分叉。
• 根据上面的数据,我们可以计算选择第一个根结点 所依赖的信息增益值,计算如下所示: 1. Gain(OUTLOOK) = Info(D) - Info(OUTLOOK) = 0.940 0.694 = 0.246 2. Gain(TEMPERATURE) = Info(D) Info(TEMPERATURE) = 0.940 - 0.911 = 0.029 3. Gain(HUMIDITY) = Info(D) - Info(HUMIDITY) = 0.940 0.789 = 0.151 4. Gain(WINDY) = Info(D) - Info(WINDY) = 0.940 0.892 = 0.048
• 这里通过下面的数据集(均为离散值,对于连 续值,下面有详细介绍)看下信息增益率节点选 择
• 上面的训练集有4个属性,即属性集合 A={OUTLOOK, TEMPERATURE, HUMIDITY, WINDY};而类 标签有2个,即类标签集合C={Yes, No},分别表示适合 户外运动和不适合户外运动,其实是一个二分类问题。 数据集D包含14个训练样本,其中属于类别“Yes”的有 9个,属于类别“No”的有5个,则计算其信息熵:即公 式(1)的值 Info(D) = -9/14 * log2(9/14) -5/14 * log2(5/14) = 0.940
2.随机森林的相关基础知识
1)信息、熵以及信息增益的概念
这三个基本概念是决策树的根本,是决策树利用特征 来分类时,确定特征选取顺序的依据。理解了它们,决策 树你也就了解了大概。
引用香农的话来说,信息是用来消除随机不确定性的 东西。当然这句话虽然经典,但是还是很难去搞明白这种 东西到底是个什么样,可能在不同的地方来说,指的东西 又不一样。对于机器学习中的决策树而言,如果带分类的 事物集合可以划分为多个类别当中,则某个类(xi)的信 息可以定义如下:
1. CART算法的认识 2. CART算法的原理 3. CART算法的实现
1. CART算法的认识
Classification And Regression Tree,即分类回归树算法, 简称CART算法,它是决策树的一种实现。
CART算法是一种二分递归分割技术,把当前样本划分为两 个子样本,使得生成的每个非叶子结点都有两个分支, 因此 CART算法生成的决策树是结构简洁的二叉树。由于CART 算法构成的是一个二叉树,它在每一步的决策时只能是“是” 或者“否”,即使一个feature有多个取值,也是把数据分为 两部分。在CART算法中主要分为两个步骤
决定随机森林分类效果(错误率)的两个因素:
• 1.森林中任意两棵树的相关性:相关性越大,错误率 越大;
• 2.森林中每棵树的分类能力:每棵树的分类能力越强, 整个森林的错误率越低。
减小m(特征选择个数),树的相关性和分类能力也 会相应的降低;增大m,两者也会随之增大。所以关键问 题是如何选择最优的m (或者是范围),这也是随机森 林唯一的一 个参数。
袋外错误率(OOB error)
上面我们提到,构建随机森林的关键问题就是如何选择 最优的m,要解决这个问题主要依据计算袋外错误率。 在构建每棵树时,我们对训练集使用了随机且有放回抽 样。所以对于每棵树而言,大约有1/3的训练实例没有参 与树的生成,它们称为树的袋外样本数据。这些数据没 有参与训练模型的拟合,因此可以用来检测模型的泛 化能力。
I(x)用来表示随机变量的信息,p(xi)指是当xi发生时的概 率。
熵是用来度量不确定性的,当熵越 大,X=xi的不确定性越大,反之越 小。对于机器学习中的分类问题而 言,熵越大即这个类别的不确定性 更大,反之越小。
信息增益在决策树算法中是用 来选择特征的指标,信息增益越大, 则这个特征的选择性越好
3.决ቤተ መጻሕፍቲ ባይዱ树算法
决策树算法是一种逼近离散函数 值的方法。它是一种典型的分类 方法,首先对数据进行处理,利 用归纳算法生成可读的规则和决 策树,然后使用决策对新数据进 行分析。本质上决策树是通过一 系列规则对数据进行分类的过程。
在之前介绍过决策树的ID3算法实 现,今天主要来介绍决策树的另一种 实现,即CART算法。
随 机 森 林
成员:XXX XXX XXX
目录
随机森林的引入及相关基本概念
·什么是随机森林 ·决策树算法
随机森林的生成
·袋外错误率
随机森林的特点
·过拟合
随机森林的实例分析
1.什么是随机森林?
随机森林就是通过集成学习的思想将多棵树集 成的一种算法,它的基本单元是决策树,而它 的本质属于机器学习的一大分支——集成学习 (Ensemble Learning)方法。随机森林的名 称中有两个关键词,一个是“随机”,一个就 是“森林”。“森林”我们很好理解,一棵叫 做树,那么成百上千棵就可以叫做森林了,这 样的比喻还是很贴切的,其实这也是随机森林 的主要思想--集成思想的体现。
(2)递归处理,将上面得到的两部分按步骤 (1)重新选取一个属性继续划分,直到把整 个维空间都划分完。
CART原则:用基尼系数作为建立决策树的指 标,分别各种计算各种水平分割后的标签列的 各种取值的概率分布
其中 表示属于i类的概率,当Gini(A)=0时, 所有样本属于同类。
下面举个简单的例子,如下图
集成学习定义
• 集成学习通过建立几个模型组合的来解决单一 预测问题。它的工作原理是生成多个分类器, 各自独立地学习和作出预测。这些预测最后结 合成单预测,因此优于任何-一个单分类的做 出预测。 随机森林是集成学习的一一个子类,它依靠于 决策树的投票选择来决定最后的分类结果。
随机森林的生成
• 随机森林中有许多分类树。如果要将一个分类树进 行分类,需要将样本输入到每棵树中进行分类。
• OUTLOOK属性 属性OUTLOOK有3个取值,其中Sunny有5个 样本、Rainy有5个样本、Overcast有4个样本, 则计算该属性本身的熵
H(OUTLOOK) = - 5/14 * log2(5/14) 5/14 * log2(5/14) 4/14 * log2(4/14) = 1.577406282852345
• 根据上面计算结果,我们可以计算信息增益率,如 下所示: 1. IGR(OUTLOOK) = Gain(OUTLOOK) / H(OUTLOOK) = 0.2 46/1.577406282852345 = 0.15595221261270145 2. IGR(TEMPERATURE) = Gain(TEMPERATURE) / H(TEMP ERATURE) = 0.029 / 1.5566567074628228 = 0.0186296 69509642094 3. IGR(HUMIDITY) = Gain(HUMIDITY) / H(HUMIDITY) = 0. 151/1.0 = 0.151 4. IGR(WINDY) = Gain(WINDY) / H(WINDY) = 0.048/0.985 2281360342516 = 0.048719680492692784
• Bootstraping 采样方法:有放回采样。 • 随机森林的bagging思想:将若干个弱分类器(多棵
树)的分类结果进行投票选择,通过表决从而组成 一个强分类器。
随机森林的生成规则
1)如果训练集大小为 N,随机且有放回地从训练集中抽 取N个训练样本,构成一个新的样本集(含重复的训练样 本)。 2)如果每个样本的特征维度为M ,指定一个常数m , 且 m< M,随机地从M个特征中选取m个特征子集,每次 树进行分裂时,从这m个特征中选择最优的,决策树成 长期间m的大小始终不变。(注意:此处采用无放回的 选择) 3)每棵树都尽可能最大程度地(完全地)生长,并且没 有剪枝过程。
01
在上述图中,属性有3个,分别是有房情况,婚姻状况和年收入,其中有房情况和婚姻 状况是离散的取值,而年收入是连续的取值。拖欠贷款者属于分类的结果。
假设现在来看有房情况这个属性, 那么按照它划分后的Gini指数计算 如下:
而对于婚姻状况属性来说,它的取值有3种, 按照每种属性值分裂后Gini指标计算如下
• TEMPERATURE属性 属性TEMPERATURE有3个取值,其中Hot有4个样 本、Mild有6个样本、Cool有4个样本,则 H(TEMPERATURE) = - 4/14 * log2(4/14) 6/14 * log2(6/14) 4/14 * log2(4/14) = 1.5566567074628228
• 根据计算得到的信息增益率进行选择 属性集中的属性作为决策树结点,对 该结点进行分裂。从上面的信息增益 率IGR可知OUTLOOK的信息增益率最大, 所以我们选其作为第一个节点。
集成学习的发展
• 集成学习的理论基础是 PAC 理论、强可学习 与弱可学习理论。集成学习的理论基础表明 强可学习器与弱可学习器是等价的,因此可 以寻找方法将弱可学习器转换为强可学习器, 而不必去直接寻找较难发现的强可学习器。 具有代表性的集成学习方法有Boosting, Bagging,随机森林。
(1)将样本递归划分进行建树过程
(2)用验证数据进行剪枝
2. CART算法的原理
设代表单个样本的个属性,表示所属类别。 CART算法通过递归的方式将维的空间划分为 不重叠的矩形。划分步骤大致如下:
(1)选一个自变量,再选取的一个值,把维 空间划分为两部分,一部分的所有点都满足, 另一部分的所有点都满足,对非连续变量来说 属性值的取值只有两个,即等于该值或不等于 该值。
• HUMIDITY属性 属性HUMIDITY有2个取值,其中Normal有7 个样本、High有7个样本,则 H(HUMIDITY) = - 7/14 * log2(7/14) 7/14 * log2(7/14) = 1.0
• WINDY属性 属性WINDY有2个取值,其中True有6个样 本、False有8个样本,则 H(WINDY) = - 6/14 * log2(6/14) 8/14 * log2(8/14) = 0.9852281360342516
随机森林的生成规则
• 通过之前的三步就可以得到一棵决策树,重复X 次这样的过程那么就能得到X棵决策树。来一个 测试样本就对它分类一遍,就得到X个分类结果。 使用简单的投票机制(或用最终分类结果)来 判别该样本的所属类。
• 注意:两类随机性的引入对随机森林的生成至 关重要。
• 对属性进行水平分割,下面对属性集中每个属性分别 计算信息熵,如下所示:
• 1.Info(OUTLOOK) = 5/14 * [- 2/5 * log2(2/5) – 3/5 * log2(3/5)] + 4/14 * [ - 4/4 * log2(4/4) 0/4 * log2(0/4)] + 5/14 * [ - 3/5 * log2(3/5) – 2/5 * log2(2/5)] = 0.694 2.Info(TEMPERATURE) = 4/14 * [- 2/4 * log2(2/4) – 2/4 * log2(2/4)] + 6/14 * [ - 4/6 * log2(4/6) 2/6 * log2(2/6)] + 4/14 * [ - 3/4 * log2(3/4) – 1/4 * log2(1/4)] = 0.911 3.Info(HUMIDITY) = 7/14 * [- 3/7 * log2(3/7) – 4/7 * log2(4/7)] + 7/14 * [ - 6/7 * log2(6/7) 1/7 * log2(1/7)] = 0.789 4.Info(WINDY) = 6/14 * [- 3/6 * log2(3/6) – 3/6 * log2(3/6)] + 8/14 * [ - 6/8 * log2(6/8) 2/8 * log2(2/8)] = 0.892
决策树C4.5
• 定义:C4.5是决策树算法的一种。决策树算法作为一种 分类算法,目标就是将具有p维特征的n个样本分到c个 类别中去。相当于做一个投影,c=f(n),将样本经过一 种变换赋予一种类别标签。决策树为了达到这一目的, 可以把分类的过程表示成一棵树,每次通过选择一个 特征pi来进行分叉。
• 根据上面的数据,我们可以计算选择第一个根结点 所依赖的信息增益值,计算如下所示: 1. Gain(OUTLOOK) = Info(D) - Info(OUTLOOK) = 0.940 0.694 = 0.246 2. Gain(TEMPERATURE) = Info(D) Info(TEMPERATURE) = 0.940 - 0.911 = 0.029 3. Gain(HUMIDITY) = Info(D) - Info(HUMIDITY) = 0.940 0.789 = 0.151 4. Gain(WINDY) = Info(D) - Info(WINDY) = 0.940 0.892 = 0.048
• 这里通过下面的数据集(均为离散值,对于连 续值,下面有详细介绍)看下信息增益率节点选 择
• 上面的训练集有4个属性,即属性集合 A={OUTLOOK, TEMPERATURE, HUMIDITY, WINDY};而类 标签有2个,即类标签集合C={Yes, No},分别表示适合 户外运动和不适合户外运动,其实是一个二分类问题。 数据集D包含14个训练样本,其中属于类别“Yes”的有 9个,属于类别“No”的有5个,则计算其信息熵:即公 式(1)的值 Info(D) = -9/14 * log2(9/14) -5/14 * log2(5/14) = 0.940
2.随机森林的相关基础知识
1)信息、熵以及信息增益的概念
这三个基本概念是决策树的根本,是决策树利用特征 来分类时,确定特征选取顺序的依据。理解了它们,决策 树你也就了解了大概。
引用香农的话来说,信息是用来消除随机不确定性的 东西。当然这句话虽然经典,但是还是很难去搞明白这种 东西到底是个什么样,可能在不同的地方来说,指的东西 又不一样。对于机器学习中的决策树而言,如果带分类的 事物集合可以划分为多个类别当中,则某个类(xi)的信 息可以定义如下:
1. CART算法的认识 2. CART算法的原理 3. CART算法的实现
1. CART算法的认识
Classification And Regression Tree,即分类回归树算法, 简称CART算法,它是决策树的一种实现。
CART算法是一种二分递归分割技术,把当前样本划分为两 个子样本,使得生成的每个非叶子结点都有两个分支, 因此 CART算法生成的决策树是结构简洁的二叉树。由于CART 算法构成的是一个二叉树,它在每一步的决策时只能是“是” 或者“否”,即使一个feature有多个取值,也是把数据分为 两部分。在CART算法中主要分为两个步骤
决定随机森林分类效果(错误率)的两个因素:
• 1.森林中任意两棵树的相关性:相关性越大,错误率 越大;
• 2.森林中每棵树的分类能力:每棵树的分类能力越强, 整个森林的错误率越低。
减小m(特征选择个数),树的相关性和分类能力也 会相应的降低;增大m,两者也会随之增大。所以关键问 题是如何选择最优的m (或者是范围),这也是随机森 林唯一的一 个参数。
袋外错误率(OOB error)
上面我们提到,构建随机森林的关键问题就是如何选择 最优的m,要解决这个问题主要依据计算袋外错误率。 在构建每棵树时,我们对训练集使用了随机且有放回抽 样。所以对于每棵树而言,大约有1/3的训练实例没有参 与树的生成,它们称为树的袋外样本数据。这些数据没 有参与训练模型的拟合,因此可以用来检测模型的泛 化能力。
I(x)用来表示随机变量的信息,p(xi)指是当xi发生时的概 率。
熵是用来度量不确定性的,当熵越 大,X=xi的不确定性越大,反之越 小。对于机器学习中的分类问题而 言,熵越大即这个类别的不确定性 更大,反之越小。
信息增益在决策树算法中是用 来选择特征的指标,信息增益越大, 则这个特征的选择性越好
3.决ቤተ መጻሕፍቲ ባይዱ树算法
决策树算法是一种逼近离散函数 值的方法。它是一种典型的分类 方法,首先对数据进行处理,利 用归纳算法生成可读的规则和决 策树,然后使用决策对新数据进 行分析。本质上决策树是通过一 系列规则对数据进行分类的过程。
在之前介绍过决策树的ID3算法实 现,今天主要来介绍决策树的另一种 实现,即CART算法。
随 机 森 林
成员:XXX XXX XXX
目录
随机森林的引入及相关基本概念
·什么是随机森林 ·决策树算法
随机森林的生成
·袋外错误率
随机森林的特点
·过拟合
随机森林的实例分析
1.什么是随机森林?
随机森林就是通过集成学习的思想将多棵树集 成的一种算法,它的基本单元是决策树,而它 的本质属于机器学习的一大分支——集成学习 (Ensemble Learning)方法。随机森林的名 称中有两个关键词,一个是“随机”,一个就 是“森林”。“森林”我们很好理解,一棵叫 做树,那么成百上千棵就可以叫做森林了,这 样的比喻还是很贴切的,其实这也是随机森林 的主要思想--集成思想的体现。
(2)递归处理,将上面得到的两部分按步骤 (1)重新选取一个属性继续划分,直到把整 个维空间都划分完。
CART原则:用基尼系数作为建立决策树的指 标,分别各种计算各种水平分割后的标签列的 各种取值的概率分布
其中 表示属于i类的概率,当Gini(A)=0时, 所有样本属于同类。
下面举个简单的例子,如下图
集成学习定义
• 集成学习通过建立几个模型组合的来解决单一 预测问题。它的工作原理是生成多个分类器, 各自独立地学习和作出预测。这些预测最后结 合成单预测,因此优于任何-一个单分类的做 出预测。 随机森林是集成学习的一一个子类,它依靠于 决策树的投票选择来决定最后的分类结果。
随机森林的生成
• 随机森林中有许多分类树。如果要将一个分类树进 行分类,需要将样本输入到每棵树中进行分类。
• OUTLOOK属性 属性OUTLOOK有3个取值,其中Sunny有5个 样本、Rainy有5个样本、Overcast有4个样本, 则计算该属性本身的熵
H(OUTLOOK) = - 5/14 * log2(5/14) 5/14 * log2(5/14) 4/14 * log2(4/14) = 1.577406282852345
• 根据上面计算结果,我们可以计算信息增益率,如 下所示: 1. IGR(OUTLOOK) = Gain(OUTLOOK) / H(OUTLOOK) = 0.2 46/1.577406282852345 = 0.15595221261270145 2. IGR(TEMPERATURE) = Gain(TEMPERATURE) / H(TEMP ERATURE) = 0.029 / 1.5566567074628228 = 0.0186296 69509642094 3. IGR(HUMIDITY) = Gain(HUMIDITY) / H(HUMIDITY) = 0. 151/1.0 = 0.151 4. IGR(WINDY) = Gain(WINDY) / H(WINDY) = 0.048/0.985 2281360342516 = 0.048719680492692784
• Bootstraping 采样方法:有放回采样。 • 随机森林的bagging思想:将若干个弱分类器(多棵
树)的分类结果进行投票选择,通过表决从而组成 一个强分类器。
随机森林的生成规则
1)如果训练集大小为 N,随机且有放回地从训练集中抽 取N个训练样本,构成一个新的样本集(含重复的训练样 本)。 2)如果每个样本的特征维度为M ,指定一个常数m , 且 m< M,随机地从M个特征中选取m个特征子集,每次 树进行分裂时,从这m个特征中选择最优的,决策树成 长期间m的大小始终不变。(注意:此处采用无放回的 选择) 3)每棵树都尽可能最大程度地(完全地)生长,并且没 有剪枝过程。
01
在上述图中,属性有3个,分别是有房情况,婚姻状况和年收入,其中有房情况和婚姻 状况是离散的取值,而年收入是连续的取值。拖欠贷款者属于分类的结果。
假设现在来看有房情况这个属性, 那么按照它划分后的Gini指数计算 如下:
而对于婚姻状况属性来说,它的取值有3种, 按照每种属性值分裂后Gini指标计算如下
• TEMPERATURE属性 属性TEMPERATURE有3个取值,其中Hot有4个样 本、Mild有6个样本、Cool有4个样本,则 H(TEMPERATURE) = - 4/14 * log2(4/14) 6/14 * log2(6/14) 4/14 * log2(4/14) = 1.5566567074628228
• 根据计算得到的信息增益率进行选择 属性集中的属性作为决策树结点,对 该结点进行分裂。从上面的信息增益 率IGR可知OUTLOOK的信息增益率最大, 所以我们选其作为第一个节点。
集成学习的发展
• 集成学习的理论基础是 PAC 理论、强可学习 与弱可学习理论。集成学习的理论基础表明 强可学习器与弱可学习器是等价的,因此可 以寻找方法将弱可学习器转换为强可学习器, 而不必去直接寻找较难发现的强可学习器。 具有代表性的集成学习方法有Boosting, Bagging,随机森林。
(1)将样本递归划分进行建树过程
(2)用验证数据进行剪枝
2. CART算法的原理
设代表单个样本的个属性,表示所属类别。 CART算法通过递归的方式将维的空间划分为 不重叠的矩形。划分步骤大致如下:
(1)选一个自变量,再选取的一个值,把维 空间划分为两部分,一部分的所有点都满足, 另一部分的所有点都满足,对非连续变量来说 属性值的取值只有两个,即等于该值或不等于 该值。
• HUMIDITY属性 属性HUMIDITY有2个取值,其中Normal有7 个样本、High有7个样本,则 H(HUMIDITY) = - 7/14 * log2(7/14) 7/14 * log2(7/14) = 1.0
• WINDY属性 属性WINDY有2个取值,其中True有6个样 本、False有8个样本,则 H(WINDY) = - 6/14 * log2(6/14) 8/14 * log2(8/14) = 0.9852281360342516