决策树

决策树

我是研究僧i 提交于 2020-03-06 03:56:36
称之为Stygian Chemical Industries,Ltd。的公司的管理层必须决定是建造小型工厂还是大型工厂来生产预期市场寿命为10年的新产品。决定取决于产品的市场规模。 在最初的两年内,可能需求会很高,但是,如果许多初始用户发现产品不满意,那么此后将降至较低水平。或者高初始需求可能表明持续高产量市场的可能性。如果需求很高并且公司在前两年内没有扩张,那么肯定会引入竞争产品。 如果该公司建立一个大型工厂,无论市场需求大小,它都必须与之共存。如果它建立一个小型工厂,管理层可以选择在两年内扩建工厂,如果在引进期间需求很高的话; 如果在介绍期间需求较低,公司将维持小型工厂的运营,并在低产量下获得整洁的利润。 管理层不确定该怎么做。该公司在1950年代迅速发展; 它与化工行业保持同步。如果市场变得很大,新产品为现有管理层提供了推动公司进入盈利增长新时期的机会。开发部门,特别是开发项目工程师,正在推动建设大型工厂,以开发该部门多年来生产的第一个主要产品开发。 主席,主要股东,对大量不需要的工厂能力的可能性持谨慎态度。他赞成较小的工厂承诺,但认识到后来的扩张以满足大批量需求需要更多投资并且运营效率较低。董事长还认识到,除非公司迅速采取行动以满足发展中的需求,否则竞争对手将倾向于采用同等产品。 Stygian Chemical问题过于简单

通俗理解集成学习boosting和bagging和随机森林

南笙酒味 提交于 2020-03-05 10:50:49
First,What is Ensemble Learning 1.将 多个分类方法聚集在一起 ,以提高分类的准确率(可以是相同or不同算法) 2.集成学习法由 训练数据构建一组基分类器 ,然后通过对每个基分类器的预测进行投票来进行分类 3.严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法。 4.如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。 那就产生了两个问题。 1.怎么训练每个基分类器? 2.怎么融合每个基分类器 Then,we have bagging and boosting 集成学习大致分为两类,一类串行生成,如 Boosting 。一类为并行化,如 Bagging 。 1.Bagging 1.Bagging又叫自助聚集,是一种根据均匀概率分布从数据中重复抽样(有放回)的技术。 2. 每个抽样生成的自助样本集上,训练一个基分类器;对训练过的分类器进行投票,将测试样本指派到得票最高的类中。 3.每个自助样本集都和原数据一样大 4.有放回抽样,一些样本可能在同一训练集中出现多次,一些可能被忽略。 如下图 举个例子吧。 X 表示一维属性,Y 表示类标号(1或-1)测试条件:当x<=k时,y=?;当x>k时,y=?;k为最佳分裂点 下表为属性x对应的唯一正确的y类别 现在进行5轮随机抽样,结果如下 每一轮随机抽样后

【学习笔记】决策树

为君一笑 提交于 2020-03-04 20:31:42
什么是决策树/判定树(decision tree)? 决策树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。 是 分类 方法中的一种算法 构造决策树 为什么age作为根节点呢? 首先,了解下 熵 (entropy)的概念: 信息和抽象,如何度量? 1948年,香农提出了 ”信息熵(entropy)“的概念 一条信息的信息量大小和它的不确定性有直接的关系,要搞清楚一件非常非常不确定的事情,或者是我们一无所知的事情,需要了解大量信息==>信息量的度量就等于不确定性的多少 例子:猜世界杯冠军,假如你对这些队伍一无所知,猜多少次? 每个队夺冠的几率不是相等的 比特(bit)来衡量信息的多少 变量的不确定性越大,熵也就越大 决策树归纳算法 (ID3) 选择属性判断结点 信息获取量(Information Gain):Gain(A) = Info(D) - Infor_A(D) 通过A来作为节点分类获取了多少信息 例如:首先我们的目的是看是否买电脑,因此作为分类依据class label(5个no,9个yes) 然后我们再加入age条件 5个youth,其中2个yes,3个no 4个Middle,其中4个yes 5个senior,其中3个yes,2个no 相减即age的信息增量: 类似,Gain

决策树原理(一)

你说的曾经没有我的故事 提交于 2020-03-04 08:29:53
小伙伴们,欢迎浏览我的博客,从今天开始,我将为大家开始讲解机器学习的基础算法,如决策树、KNN算法、SVM、神经网络等。本节先讲解决策树算法。 一、机器学习中分类与预测算法评估 1、准确率 2、速度 3、强壮性 4、可规模性 5、可解释性 在机器学习算法当中、评价一个算法的好坏或者比较两个算法的优劣,主要以上5个方面进行评估。首先 准确率 是指算法分类或者预测的准确程度,这是个非常重要的标准,而 速度 是指算法的复杂度高不高,其次 强壮行 是指一个算法在包含噪音、缺失值、异常值的数据中依然保持非常好的效率 , 可规模性 是指一个算法不仅可以在小规模数据上保持高效,在呈指数型增长的数据中依然能保持高效,最后 可解释性 是指算法在做出特征值的选取和归类能容易的解释这种归类和我们的直觉是相符的。 二、决策树 1、什么是决策树/判定书(decision tree)? 决策树是类似于流程图的树结构:其中,每个内部节点表示在一个属性上的测试,每个分支表示一个属性的输出,而每个树叶节点表示一个类或者类分布。树的最顶层是根节点。 以上图为例,该决策树的属性有:OUTLOOK、HUMIDITY、WINDY,以OUTLOOK属性为根节点,OUTLOOK有三个取值,即sunny、overcast、rain,根节点的三个分支就是它三个值的输出。决策树有五个叶子,叶子代表已经分好的类,即Play或者Don

机器学习-树模型

亡梦爱人 提交于 2020-03-03 18:30:28
树模型(分类或回归) 决策树 树的基本结构 示例 定义 决策树在分类问题中,表示基于特征对实例空间进行划分的方法。可以视为if-then规则的集合,也可以认为是定义在特征空间和类空间上的条件概率分布。 步骤 特征选择 决定选取哪些特征来划分特征空间。 先引入信息论概念: 信息增益 熵、条件概率、信息增益 对信息增益进行特征选择 选取信息增益最大的特征 特征的信息增益算法 计算数据集D的熵 计算特征的条件熵 计算特征的信息增益 !!!这样的算法特性倾向于选择特征离散量较多的特征,但实际往往是由于特征很多而把y分的很细,因而就有了信息增益比修正算法 信息增益比修正算法 计算数据集D关于特征的熵 计算特征的信息增益比 决策树生成 ID3 基于信息增益特征选择 C4.5 C4.5算法即将ID3中特征选择算法由信息增益替换为信息增益比 过拟合问题 往往树的规模越大,在模型训练中的拟合效果虽然会更好,但模型的泛化能力会下降,因此需要对决策树进行剪枝。 决策树剪枝 极小化决策树整体的损失函数或代价函数 函数定义 混淆矩阵 分类回归树CIRT 假设决策树是二叉树形式,一次特征只能将数据集分为两个类别。 决策树优点 不需要任何领域知识或参数假设 适合高维数据 简单易于理解 短时间内处理大量数据,得到可行且效果较好的结果 决策树缺点 对于各类别样本数量不一致的数据,信息增益偏向于那些具有更多数值的特征

人工智能:集成学习方法随机森林

孤街醉人 提交于 2020-03-03 02:25:07
集成学习方法 集成学习通过建立几个模型组合来解决单一预测问题,他的工作原理是 生成多个分类器/模型 ,各自独立的学习和做出预测,这些预测最后结合成单预测。因此优于任何一个单分类做出的预测 随机森林 什么时随机森林 在机器学习中,随机森林就是一个包含多个决策树的分类器,其中并输出的类别是个别树输出的类别的众数而定 随机森林的过程,优势 单个树建立 的过程: N个样本,M个特征 (随机又放回的抽样 bootstrap抽样) 随机在N个样本中选择一个样本,重复N次样本可能重复 随机在M个特征中选出m个特征 建立时刻决策树,样本,特征大多不一样 泰坦尼克号乘客生存分类分析 随机森林API 代码 from sklearn . datasets import load_iris , fetch_20newsgroups , load_boston from sklearn . model_selection import train_test_split from sklearn . neighbors import KNeighborsClassifier from sklearn . preprocessing import StandardScaler from sklearn . feature_extraction . text import TfidfVectorizer

【华为云技术分享】【Python算法】分类与预测——决策树

瘦欲@ 提交于 2020-03-02 04:06:45
1.决策树定义 决策树方法在分类、预测、规则提取等领域有着广泛的应用。20 世纪 70 年代后期和 80 年代初期,机器学习研究者 J.Ross Quinlan 提出了 ID3 算法以后,决策树就在机器学习与数据挖掘领域取得了巨大的发展。Quinlan 后来又提出了 C4.5,这成为了新的监督学习算法。1984年,几位统计学专家提出了 CART 分类算法。ID3 和 CART 算法几乎同时被提出,但都是采用的类似的方法从训练样本中学习决策树。决策树是一种树状结构,它的每个叶节点对应一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性上的不同值将其划分成若干个子集,而对于非纯的叶节点,多数类的标号给出到达这个节点的样本所属的类。构造决策树的核心的问题是在每一步中如何选择适当的属性对样本进行拆分。对一个分类问题,从已知类标记的训练样本中学习并构造出决策树其实是一个自上而下,分而治之的过程。 2.常用决策树算法 常用的决策树算法有三种,分别是 ID3 算法、C4.5 算法、CART 算法三种。   (1) ID3 算法:此算法的核心在于决策树的各级节点上,使用信息增益方法作为属性的选择标准,来帮助确定生成每个节点时所应采取的合适属性;   (2) C4.5 算法:此决策树生成算法相对于 ID3 算法的重要改进是使用信息增益率来选择节点属性,此算法可以克服ID3算法的不足

决策树(decision tree)(三)——连续值处理

核能气质少年 提交于 2020-02-29 02:48:28
决策树(decision tree)(三)——连续值处理 **注:本博客为周志华《机器学习》读书笔记,虽然有一些自己的理解,但是其中仍然有大量文字摘自周老师的《机器学习》书。 决策树系列博客: 决策树(decision tree)(一)——构造决策树方法 决策树(decision tree)(二)——剪枝 决策树(decision tree)(三)——连续值处理 决策树(decision tree)(四)缺失值处理 前面两篇博客分别介绍了如何构造决策树(根据信息增益,信息增益率,基尼指数等)和如何对决策树进行剪枝(预剪枝和后剪枝),但是前面两篇博客主要都是基于离散变量的,然而我们现实的机器学习任务中会遇到连续属性,这篇博客主要介绍决策树如何处理连续值。 | 连续值处理 因为连续属性的可取值数目不再有限,因此不能像前面处理离散属性枚举离散属性取值来对结点进行划分。因此需要连续属性离散化,常用的离散化策略是二分法,这个技术也是C4.5中采用的策略。下面来具体介绍下,如何采用二分法对连续属性离散化: 下面举个具体的例子,来看看到底是怎样划分的。给定数据集如下(数据集来自周志华《机器学习》,我已经把数据集放到github上了,地址为: 西瓜数据集3.0 ): 对于数据集中的属性“密度”,决策树开始学习时,根节点包含的17个训练样本在该属性上取值均不同。我们先把“密度”这些值从小到大排序:

机器学习——随机森林算法

穿精又带淫゛_ 提交于 2020-02-28 22:14:56
机器学习——随机森林算法 1、随机森林引入 在之前的文章 机器学习——AdaBoost算法 中,我们引入了集成学习的概念,我们再来回忆一下集成学习的基本框架: 上述的每一个学习器称为弱学习器,通过多个弱学习器,最终构建出集成学习器系统,集成学习系统主要可以分成两个类别,第一个是各个弱学习器之间是有关的,第二种是各个学习器之间是无关的,对于第一种,我们已经讲述了AdaBoost算法,我们接下来是讲述关于第二个分类的代表算法——随机森林。 对于随机森林而言,其也是由多个弱学习器所构建的,每一个若学习器都是一个决策树,关于决策树的相关知识,可以参考我之前的文章 机器学习算法—决策树(ID3)算法 。在这里就不具体描述了。 2、随机森林具体描述 2.1 随机森林的基本流程 根据训练数据,构建出多棵决策树,形成随机森林。 对于测试数据,将测试数据输入到随机森林中,每一棵决策树做出预测结果。 对于每一棵决策的决策结果,根据少数服从多数的投票方法或者加权的方式来决定最终的结果。 2.2 随机森林的构建过程 我们假设训练集包括M个训练样本,具体形式为: D = [ X 1 , X 2 , . . . . . , X M ] D=[X_1,X_2,.....,X_M] D = [ X 1 ​ , X 2 ​ , . . . . . , X M ​ ] 每一个 X i X_i X i ​

决策树模型——鸢尾花分类

空扰寡人 提交于 2020-02-27 10:41:33
构建一个决策树分类模型,实现对鸢尾花的分类 1.lris数据集介绍: 鸢尾花数据集是机器学习领域中非常经典的一个分类数据集。数据集全名为:Iris Data Set,总共包含150行数据。 每一行由4个特征值及一个目标值(类别变量)组成。 其中4个特征值分别是:萼片长度、萼片宽度、花瓣长度、花瓣宽度 目标值为3种不同类别的鸢尾花:山鸢尾、变色鸢尾、维吉尼亚鸢尾 2.读取数据 Iris数据集里是一个矩阵,每一列代表了萼片或花瓣的长宽,一共4列,每一列代表某个被测量的鸢尾植物,一共采样了150条记录。 from sklearn.datasets import load_iris # 导入方法类 iris = load_iris() #导入数据集iris iris_feature = iris.data #特征数据 iris_target = iris.target #分类数据 print (iris.data) #输出数据集 print (iris.target) #输出真实标签 print (len(iris.target) ) print (iris.data.shape ) #150个样本 每个样本4个特征 #输出结果如下: [[5.1 3.5 1.4 0.2] [4.9 3. 1.4 0.2] [4.7 3.2 1.3 0.2] [4.6 3.1 1.5 0.2] [5. 3