C A R T 分 类 与 回 归 树
- 格式:pdf
- 大小:235.14 KB
- 文档页数:10
李航-统计学习⽅法-笔记-5:决策树基本模型简介:决策树可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。
其主要优点是模型具有可读性,分类速度快。
决策树学习通常包括3个步骤:特征选择,决策树⽣成,剪枝。
决策树的内部结点表⽰⼀个特征或属性,叶结点表⽰⼀个类。
If-then:决策树路径或其对应的if-then规则集合具有⼀个重要的性质,互斥并且完备,也就是说,每⼀个实例都被⼀条路径或⼀条规则所覆盖,⽽且只被⼀条路径或者⼀条规则覆盖。
概率分布:决策树将特征空间划分为互不相交的单元,并在每个单元定义⼀个类的概率分布。
决策树的⼀条路径对应于划分中的⼀个单元,决策树所表⽰的条件概率分布由各个单元给定条件下类的条件概率分布组成,即P(Y | X),叶结点(单元)上的条件概率往往偏向某⼀类。
决策树的学习:决策树学习本质上是从训练数据集中归纳出⼀组分类规则,找到⼀棵“与训练数据⽭盾较⼩,同时具有很好的泛化能⼒”的树。
另⼀个⾓度看,决策树学习是“由训练集估计的条件概率模型”,基于特征空间划分的类的条件概率模型有多个。
我们选择的条件概率模型应该不仅对训练数据有很好的拟合,⽽且对未知数据有很好的预测。
启发式⽅法:从所有可能的决策树中选取最优决策树是NP完全问题,所以现实中通常采⽤启发式⽅法,近似求解这⼀最优化问题。
这样得到的决策树是次优的(sub-optimal)。
通常的做法是递归地选择最优特征,并根据该特征对训练数据进⾏分割,使得对各个⼦数据集有⼀个最好的分类的过程。
剪枝:以上⽅法⽣成的树可能对训练集有很好的分类能⼒,但对未知的数据却未必,可能发⽣过拟合。
我们需要对已⽣成的树⾃下⽽上进⾏剪纸,将树变得更简单,从⽽使它具有更好的泛化能⼒。
具体地,就是去掉过于细分的叶结点,使其回退到⽗结点,甚⾄更⾼的结点,将⽗结点或更⾼的结点改为新的叶结点。
特征选择特征选择:特征选择在于选取对训练数据具有分类能⼒的特征。
第一章测试1.在相同或近似相同的时间点搜集的数据成为()A:截面数据B:实验数据C:时间序列数据D:观测数据答案:A2.只能归于某一有序类别的非数字型数据成为()A:数值型变量B:数值型数据C:分类数据D:顺序数据答案:D3.最近发表的一份报告称,“由150部新车组成的一个样本表明,外国新车的价格明显高于本国生产的新车”。
这项结论属于()A:对总体的描述B:对总体的推断C:对样本的描述D:对样本的推断答案:B4.一项调查表明,在所抽取的1000个消费者中,他们每月在网上购物的平均花费是200元,他们选择在网上购物的主要原因是“价格便宜”。
这里的参数是()A:所有在网上购物的消费者的平均花费金额B:1000个消费者的平均花费C:所有在网上购物的消费者D:1000个消费者答案:A5.某年全国汽车总产量(万辆)是()A:随机变量B:离散变量C:连续变量D:任意变量答案:A6.统计数据的研究的基本方法()A:统计分组法B:综合指标法C:统计推断法D:大量观察法答案:ABCD7.以下信息是通过描述统计取得的有()A:调查某些班学生统计学考试分数而得到的全校学生的平均成绩B:调查某班统计学分数而得到的优秀比例C:一幅表示某班学生统计学考试分数的统计图D:调查某班学生统计学考试分数而得到的该班学生的平均成绩答案:BCD8.下面属于顺序数据的有()A:学生对考试成绩的满意度B:学生的智商等级C:学生到达教室的距离D:学生按出生地的分组答案:AB9.统计推断学研究的主要问题是()A:如何科学的从总体中抽取样本B:如何科学的确定总体C:怎么科学控制样本对总体的代表性误差D:如何由所抽样本去推断总体特征答案:ABD10.大数据按存在形态不同,大数据可以分为()A:非结构型数据B:流程型数据C:交易型数据D:结构型数据答案:AD11.统计量是不包含任何未知参数的样本的函数()A:错B:对答案:B12.变量按其所受影响因素不同,可以分为确定性变量和随机性变量()A:错B:对答案:B13.按指标的性质不同,可以分为数量指标和质量指标()A:错B:对答案:B14.统计指标和标志是同一个概念()A:对B:错答案:B15.按照统计数据的收集方法,可以将其分为观测数据和实验数据()A:对B:错答案:A第二章测试1.如果一个样本因人为故意操纵而出现偏差,这种误差属于()A:实验误差B:设计误差C:非抽样误差D:抽样误差答案:C2.对一批牛奶的质量进行调查,应该采用()A:典型调查B:普查C:重点调查D:抽样调查答案:D3.抽样误差产生的原因()A:测量误差造成的B:抽样框误差产生的C:抽样的随机性产生的D:人为因素产生的答案:C4.抽样误差的特点()A:不可以计算的B:不可以控制C:和样本多少无关D:不可避免答案:D5.为了掌握商品销售情况,对占该地区商品销售额70%的十家大型商场进行调查,这种调查方式属于()A:抽样调查B:重点调查C:非抽样调查D:统计报表答案:B6.不同的调查问卷在具体结构、题型、措词、版式设计上会有所不同,但在结构上一般都由( )A:问卷标题B:问卷说明C:主体内容成D:填写要求答案:ABCD7.重点调查的特点( )A:有意识地选取若干具有典型意义的单位进行的调查B:属于范围较小的全面调查,即对所有重点单位都要进行观测C:解剖麻雀式D:以客观原则来确定观测单位答案:ABCD8.简单随机抽样的特点()A:抽样方法保证了样本中包含有各种特征的抽样单位,样本的结构与总体的结构比较相近B:抽选的概率相同,用样本统计量对总体参数进行估计及计算估计量误差都比较方便C:每个单位的入样概率是相等的D:可以对各层的目标量进行估计答案:BC9.根据封闭性问题的回答方法可分为()A:两项选择法B:顺序选择法C:评定尺度法D:多项选择法答案:ABCD10.搜集数据的方式有()A:访问B:统计调查方式C:实验方式D:网络数据采集方式答案:ABCD11.普查是根特定研究目的而专门组的一次性的全面调查,以搜集研究对象的全面资料数据()A:对B:错答案:A12.统计报表是指按照国家统一规定的表格形式、指标内容、报送程序和报送时间,由填报单位自下而上逐级提供统计资料的一种统计调查方式。
MFC树形控件(CTreeCtrl)用法树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。
MFC中使用CTreeCtrl类来封装树形控件的各种操作。
通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些树形控件的专用风格:TVS_HASLINES 在父/子结点之间绘制连线TVS_LINESATROOT 在根/子结点之间绘制连线TVS_HASBUTTONS 在每一个结点前添加一个按钮,用于表示当前结点是否已被展开TVS_EDITLABELS 结点的显示字符可以被编辑TVS_SHOWSELALWAYS 在失去焦点时也显示当前选中的结点TVS_DISABLEDRAGDROP 不允许Drag/DropTVS_NOTOOLTIPS 不使用ToolTip显示结点的显示字符在树形控件中每一个结点都有一个句柄(HTREEITEM),同时添加结点时必须提供的参数是该结点的父结点句柄,(其中根Root结点只有一个,既不可以添加也不可以删除)利用HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAf ter = TVI_LAST );可以添加一个结点,pszItem为显示的字符,hParent代表父结点的句柄,当前添加的结点会排在hInsertAf ter表示的结点的后面,返回值为当前创建的结点的句柄。
下面的代码会建立一个如下形式的树形结构:+--- Parent1+--- Child1_1+--- Child1_2+--- Child1_3+--- Parent2+--- Parent3/*假设m_tree为一个CTreeCtrl对象,而且该窗口已经创建*/HTREEITEM hItem,hSubItem;hItem = m_tree.InsertItem("Parent1",TVI_ROOT);在根结点上添加Parent1hSubItem = m_tree.InsertItem("Child1_1",hItem);//在Parent1上添加一个子结点hSubItem = m_tree.InsertItem("Child1_2",hItem,hSubItem);//在Parent1上添加一个子结点,排在Child1_1后面hSubItem = m_tree.InsertItem("Child1_3",hItem,hSubItem);hItem = m_tree.InsertItem("Parent2",TVI_ROOT,hItem);hItem = m_tree.InsertItem("Parent3",TVI_ROOT,hItem);如果你希望在每个结点前添加一个小图标,就必需先调用CImageList* SetImageList( CImageList * pImageList, int nImageListType );指明当前所使用的ImageList,nImageListType为TVSIL_NORMAL。
决策树系列(五)——CARTCART,⼜名分类回归树,是在ID3的基础上进⾏优化的决策树,学习CART记住以下⼏个关键点:(1)CART既能是分类树,⼜能是分类树;(2)当CART是分类树时,采⽤GINI值作为节点分裂的依据;当CART是回归树时,采⽤样本的最⼩⽅差作为节点分裂的依据;(3)CART是⼀棵⼆叉树。
接下来将以⼀个实际的例⼦对CART进⾏介绍: 表1 原始数据表看电视时间婚姻情况职业年龄3未婚学⽣124未婚学⽣182已婚⽼师265已婚上班族472.5已婚上班族363.5未婚⽼师294已婚学⽣21从以下的思路理解CART:分类树?回归树?分类树的作⽤是通过⼀个对象的特征来预测该对象所属的类别,⽽回归树的⽬的是根据⼀个对象的信息预测该对象的属性,并以数值表⽰。
CART既能是分类树,⼜能是决策树,如上表所⽰,如果我们想预测⼀个⼈是否已婚,那么构建的CART将是分类树;如果想预测⼀个⼈的年龄,那么构建的将是回归树。
分类树和回归树是怎么做决策的?假设我们构建了两棵决策树分别预测⽤户是否已婚和实际的年龄,如图1和图2所⽰: 图1 预测婚姻情况决策树图2 预测年龄的决策树图1表⽰⼀棵分类树,其叶⼦节点的输出结果为⼀个实际的类别,在这个例⼦⾥是婚姻的情况(已婚或者未婚),选择叶⼦节点中数量占⽐最⼤的类别作为输出的类别;图2是⼀棵回归树,预测⽤户的实际年龄,是⼀个具体的输出值。
怎样得到这个输出值?⼀般情况下选择使⽤中值、平均值或者众数进⾏表⽰,图2使⽤节点年龄数据的平均值作为输出值。
CART如何选择分裂的属性?分裂的⽬的是为了能够让数据变纯,使决策树输出的结果更接近真实值。
那么CART是如何评价节点的纯度呢?如果是分类树,CART采⽤GINI值衡量节点纯度;如果是回归树,采⽤样本⽅差衡量节点纯度。
节点越不纯,节点分类或者预测的效果就越差。
GINI值的计算公式:节点越不纯,GINI值越⼤。
以⼆分类为例,如果节点的所有数据只有⼀个类别,则,如果两类数量相同,则。
决策树⽂章记录的内容是参加DataWhale的组队学习过程中的笔记与查缺补漏!参考解答地址:。
1. 根据表5.1所给的训练数据集,利⽤信息增益⽐(C4.5算法)⽣成决策树。
解答思路:列出C4.5的⽣成算法;使⽤sklearn的DecisionTreeClassifier类构建决策树,并使⽤graphviz包展⽰,默认是Gini,这⾥可以作为⾃编程的验证;通过⾃编程实现C4.5算法⽣成决策树,并进⾏特征选择。
先看看 C4.5 算法⽣成决策树的过程:输⼊:训练数据集D,特征集A阈值ϵ;输出:决策树T。
(1)如果D中所有实例属于同⼀类C k,则置T为单结点树,并将C k作为该结点的类,返回T;(2)如果A=∅,则置T为单结点树,并将D中实例数最⼤的类C k作为该结点的类,返回T;(3)否则,按式g R(D,A)=g(D,A)H A(D)计算A中各特征对D的信息增益⽐,选择信息增益⽐最⼤的特征A g;(4)如果A g的信息增益⽐⼩于阈值ϵ,则置T为单结点树,并将D中实例数最⼤的类C k作为该结点的类,返回T;(5)否则,对A g的每⼀可能值a i,依A g=a i将D分割为⼦集若⼲⾮空D i,将D i中实例数最⼤的类作为标记,构建⼦结点,由结点及其⼦结点构成树T,返回T;(6)对结点i,以D i为训练集,以A−{A g} 为特征集,递归地调⽤步(1)~步(5),得到⼦树T i,返回T i其中⼀个⽐较重要的部分就是信息增益⽐的 g R(D,A) 的计算。
于 ID3 算法不同,C4.5 使⽤的是信息增益⽐作为数据集划分时特征选择的准则(ID3 和 C4.5 的作者是同⼀个⼈,ID3先于 C4.5 被提出,但是 ID4 被其他⼈占⽤了)。
看⼀下信息增益⽐的计算⽅式:g R(D,A)=g(D,A) H A(D)其中 g(D,A) 是信息增益,H A(D) 是数据集 D 关于特征 A 的值的熵,即以 A 的值的不确定性,看看这两个值分别是怎么算的:g(D,A)=H(D)−H(D∣A)=−K∑k=1|C k||D|log2|C k||D|−(−n∑i=1|D i||D|H(Di))=−K∑k=1|C k||D|log2|C k||D|−(−n∑i=1|D i||D|K∑k=1|D ik||D i|log2|D ik||D i|)上式中 C k 表⽰ D 类别为 k 的样本集合,D i 表⽰按照 A 的 n 个取值对 D 进⾏划分时的⼀个⼦集。
《⼤数据时代下的数据挖掘》试题和答案及解析《海量数据挖掘技术及⼯程实践》题⽬⼀、单选题(共80题)1)( D )的⽬的缩⼩数据的取值范围,使其更适合于数据挖掘算法的需要,并且能够得到和原始数据相同的分析结果。
A.数据清洗B.数据集成C.数据变换D.数据归约2)某超市研究销售纪录数据后发现,买啤酒的⼈很⼤概率也会购买尿布,这种属于数据挖掘的哪类问题?(A)A. 关联规则发现B. 聚类C. 分类D. ⾃然语⾔处理3)以下两种描述分别对应哪两种对分类算法的评价标准? (A)(a)警察抓⼩偷,描述警察抓的⼈中有多少个是⼩偷的标准。
(b)描述有多少⽐例的⼩偷给警察抓了的标准。
A. Precision,RecallB. Recall,PrecisionA. Precision,ROC D. Recall,ROC4)将原始数据进⾏集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C)A. 频繁模式挖掘B. 分类和预测C. 数据预处理D. 数据流挖掘5)当不知道数据所带标签时,可以使⽤哪种技术促使带同类标签的数据与带其他标签的数据相分离?(B)A. 分类B. 聚类C. 关联分析D. 隐马尔可夫链6)建⽴⼀个模型,通过这个模型根据已知的变量值来预测其他某个变量值属于数据挖掘的哪⼀类任务?(C)A. 根据内容检索B. 建模描述C. 预测建模D. 寻找模式和规则7)下⾯哪种不属于数据预处理的⽅法? (D)A.变量代换B.离散化C.聚集D.估计遗漏值8)假设12个销售价格记录组已经排序如下:5, 10, 11, 13, 15, 35, 50, 55, 72, 92, 204, 215 使⽤如下每种⽅法将它们划分成四个箱。
等频(等深)划分时,15在第⼏个箱⼦内?(B)A.第⼀个B.第⼆个C.第三个D.第四个9)下⾯哪个不属于数据的属性类型:(D)A.标称B.序数C.区间D.相异10)只有⾮零值才重要的⼆元属性被称作:( C )A.计数属性B.离散属性C.⾮对称的⼆元属性D.对称属性11)以下哪种⽅法不属于特征选择的标准⽅法: (D)A.嵌⼊B.过滤C.包装D.抽样12)下⾯不属于创建新属性的相关⽅法的是: (B)A.特征提取B.特征修改C.映射数据到新的空间D.特征构造13)下⾯哪个属于映射数据到新的空间的⽅法? (A)A.傅⽴叶变换B.特征加权C.渐进抽样D.维归约14)假设属性income的最⼤最⼩值分别是12000元和98000元。
回归分析的应用及回归分析的类型什么是回归分析?正确问题的近似答案要比近似问题的精确答案更有价值这正是回归分析所追求的目标,它是最常用的预测建模技术之一,有助于在重要情况下做出更明智的决策。
回归分析是作为数据科学家需要掌握的第一个算法。
它是数据分析中最常用的预测建模技术之一。
即使在今天,大多数公司都使用回归技术来实现大规模决策。
要回答“什么是回归分析”这个问题,我们需要深入了解基本面。
简单的回归分析定义是一种用于基于一个或多个独立变量(X)预测因变量(Y)的技术。
经典的回归方程看起来像这样:等式中,hθ(x)是因变量Y,X是自变量,θ0是常数,并且θ1是回归系数。
回归分析的应用回归分析有三个主要应用:•解释他们理解困难的事情。
例如,为什么客户服务电子邮件在上一季度有所下降。
•预测重要的商业趋势。
例如,明年会要求他们的产品看起来像什么?•选择不同的替代方案。
例如,我们应该进行PPC(按点击付费)还是内容营销活动?不同类型的回归分析技术有许多可用的回归技术,不同的技术更适合于不同的问题。
回归分析技术的类型基于:•自变量的数量(1,2或更多)•因变量的类型(分类,连续等)•回归线的形状主要类型的回归分析1. 线性回归线性回归是最常用的回归技术。
线性回归的目的是找到一个称为Y的连续响应变量的方程,它将是一个或多个变量(X)的函数。
因此,线性回归可以在仅知道X时预测Y的值。
它不依赖于任何其他因素。
Y被称为标准变量,而X被称为预测变量。
线性回归的目的是通过点找到称为回归线的最佳拟合线。
这就是数学线性回归公式/等式的样子:在上面的等式中,hθ(x)是标准变量Y,X是预测变量,θ0是常数,并且θ1是回归系数线性回归可以进一步分为多元回归分析和简单回归分析。
在简单线性回归中,仅使用一个独立变量X来预测因变量Y的值。
另一方面,在多元回归分析中,使用多个自变量来预测Y,当然,在这两种情况下,只有一个变量Y,唯一的区别在于自变量的数量。
回归分析与相关分析的联系:研究在专业上有一定联系的两个变量之间是否存在直线关系以及如何求得直线回归方程等问题,需进行直线相关和回归分析。
从研究的目的来说,若仅仅为了了解两变量之间呈直线关系的密切程度和方向,宜选用线性相关分析;若仅仅为了建立由自变量推算因变量的直线回归方程,宜选用直线回归分析。
从资料所具备的条件来说,作相关分析时要求两变量都是随机变量(如:人的身长与体重、血硒与发硒);作回归分析时要求因变量是随机变量,自变量可以是随机的,也可以是一般变量(即可以事先指定变量的取值,如:用药的剂量)。
在统计学教科书中习惯把相关与回归分开论述,其实在应用时,当两变量都是随机变量时,常需同时给出这两种方法分析的结果;另外,若用计算器实现统计分析,可用对相关系数的检验取代对回归系数的检验,这样到了化繁为简的目的。
回归分析和相关分析都是研究变量间关系的统计学课题,它们的差别主要是:1、在回归分析中,y被称为因变量,处在被解释的特殊地位,而在相关分析中,x与y处于平等的地位,即研究x与y的密切程度和研究y与x的密切程度是一致的;2、相关分析中,x与y都是随机变量,而在回归分析中,y是随机变量,x可以是随机变量,也可以是非随机的,通常在回归模型中,总是假定x是非随机的;3、相关分析的研究主要是两个变量之间的密切程度,而回归分析不仅可以揭示x对y的影响大小,还可以由回归方程进行数量上的预测和控制。
1.为什么要对相关系数进行显著性检验?在对实际现象进行分析时,往往是利用样本数据计算相关系数()作为总体相关系数()的估计值,但由于样本相关系数具有一定的随机性,它能否说明总体的相关程度往往同样本容量有一定关系。
当样本容量很小时,计算出的不一定能反映总体的真实相关关系,而且,当总体不相关时,利用样本数据计算出的也不一定等于零,有时还可能较大,这就会产生虚假相关现象。
为判断样本相关系数对总体相关程度的代表性,需要对相关系数进行显著性检验。
决策树--CART树详解1.CART简介CART是⼀棵⼆叉树,每⼀次分裂会产⽣两个⼦节点。
CART树分为分类树和回归树。
分类树主要针对⽬标标量为分类变量,⽐如预测⼀个动物是否是哺乳动物。
回归树针对⽬标变量为连续值的情况,⽐如预测⼀个动物的年龄。
如果是分类树,将选择能够最⼩化分裂后节点GINI值的分裂属性;如果是回归树,选择能够最⼩化两个节点样本⽅差的分裂属性。
CART跟其他决策树算法⼀样,需要进⾏剪枝,才能防⽌算法过拟合从⽽保证算法的泛化性能。
2.CART分类树2.1算法详解CART分类树预测分类离散型数据,采⽤基尼指数选择最优特征,同时决定该特征的最优⼆值切分点。
分类过程中,假设有K个类,样本点属于第k个类的概率为Pk,则概率分布的基尼指数定义为根据基尼指数定义,可以得到样本集合D的基尼指数,其中Ck表⽰数据集D中属于第k类的样本⼦集。
如果数据集D根据特征A在某⼀取值a上进⾏分割,得到D1,D2两部分后,那么在特征A下集合D的基尼系数如下所⽰。
其中基尼系数Gini(D)表⽰集合D的不确定性,基尼系数Gini(D,A)表⽰A=a分割后集合D的不确定性。
基尼指数越⼤,样本集合的不确定性越⼤。
对于属性A,分别计算任意属性值将数据集划分为两部分之后的Gain_Gini,选取其中的最⼩值,作为属性A得到的最优⼆分⽅案。
然后对于训练集S,计算所有属性的最优⼆分⽅案,选取其中的最⼩值,作为样本及S的最优⼆分⽅案。
2.1实例详解针对上述离散型数据,按照体温为恒温和⾮恒温进⾏划分。
其中恒温时包括哺乳类5个、鸟类2个,⾮恒温时包括爬⾏类3个、鱼类3个、两栖类2个,如下所⽰我们计算D1,D2的基尼指数。
然后计算得到特征体温下数据集的Gini指数,最后我们选择Gain_Gini最⼩的特征和相应的划分。
3.CART回归树3.1算法详解CART回归树预测回归连续型数据,假设X与Y分别是输⼊和输出变量,并且Y是连续变量。
在训练数据集所在的输⼊空间中,递归的将每个区域划分为两个⼦区域并决定每个⼦区域上的输出值,构建⼆叉决策树。
逻辑回归⾯试题逻辑回归为什么要对特征进⾏离散化?在⼯业界,很少直接将连续值做啥逻辑回归模型的特征输⼊,⽽是将连续特征离散化为⼀系列0、1特征交给逻辑回归模型,优势如下:1、离散特征的增加和减少都很容易,易于模型的快速迭代;2、稀疏向量内积乘法运算速度快,计算结果⽅便存储,容易扩展;3、离散化后的特征对异常数据有很强的鲁棒性:⽐如⼀个特征是年龄>30是1,否则0。
如果特征没有离散化,⼀个异常数据“年龄300岁”会给模型造成很⼤的⼲扰;4、离散化后可以进⾏特征交叉,由M+N个变量变为M*N个变量,进⼀步引⼊⾮线性,提升表达能⼒;5、特征离散化后,模型会更稳定,⽐如如果对⽤户年龄离散化,20-30作为⼀个区间,不会因为⼀个⽤户年龄长了⼀岁就变成⼀个完全不同的⼈。
当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;6、特征离散化以后,起到了简化了逻辑回归模型的作⽤,降低了模型过拟合的风险。
模型是使⽤离散特征还是连续特征,其实是⼀个“海量离散特征+简单模型” 同 “少量连续特征+复杂模型”的权衡。
既可以离散化⽤线性模型,也可以⽤连续特征加深度学习。
就看是喜欢折腾特征还是折腾模型了。
通常来说,前者容易,⽽且可以n个⼈⼀起并⾏做,有成功经验;后者⽬前看很赞,能⾛多远还须拭⽬以待。
逻辑回归和线性回归的⽐较?虽然逻辑回归能够⽤于分类,但是其本质是线性回归。
1、Logistic 回归是在线性回归的实数范围输出的基础上,在特征到结果的映射中加⼊了⼀层sigmoid函数(⾮线性)映射,将值收敛到了0~1范围内(即先把特征进⾏线性求和,之后使⽤sigmoid函数来预测结果),其损失函数也从最⼩⼆乘函数变为了对数损失函数,以提供最优化所需要的导数(sigmoid函数是softmax函数的⼆元特例,其导数均为函数值的f*(1-f)形式)。
2、线性回归优化⽬标函数是最⼩⼆乘,逻辑回归的优化⽬标函数是似然函数。
3、线性回归是在整数域范围内进⾏预测,敏感度⼀致,⽽逻辑回归的分类范围是将输⼊线性到[0,1]之间了,逻辑回归就是⼀种减⼩预测范围,将预测值限定为[0,1]间的⼀种回归模型。
计量经济学题库(超完整版)及答案计量经济学题库三、名词解释(每⼩题3分)1.经济变量 2.解释变量3.被解释变量4.内⽣变量 5.外⽣变量 6.滞后变量7.前定变量 8.控制变量9.计量经济模型10.函数关系 11.相关关系 12.最⼩⼆乘法13.⾼斯-马尔可夫定理 14.总变量(总离差平⽅和)15.回归变差(回归平⽅和) 16.剩余变差(残差平⽅和)17.估计标准误差 18.样本决定系数 19.点预测 20.拟合优度21.残差 22.显著性检验23.回归变差 24.剩余变差 25.多重决定系数 26.调整后的决定系数27.偏相关系数 28.异⽅差性 29.格德菲尔特-匡特检验 30.怀特检验 31.⼽⾥瑟检验和帕克检验32.序列相关性 33.虚假序列相关 34.差分法 35.⼴义差分法 36.⾃回归模型 37.⼴义最⼩⼆乘法38.DW 检验 39.科克伦-奥克特跌代法 40.Durbin 两步法41.相关系数 42.多重共线性 43.⽅差膨胀因⼦ 44.虚拟变量 45.模型设定误差 46.⼯具变量 47.⼯具变量法 48.变参数模型 49.分段线性回归模型50.分布滞后模型 51.有限分布滞后模型52.⽆限分布滞后模型 53.⼏何分布滞后模型 54.联⽴⽅程模型 55.结构式模型56.简化式模型 57.结构式参数 58.简化式参数 59.识别 60.不可识别 61.识别的阶条件 62.识别的秩条件 63.间接最⼩⼆乘法四、简答题(每⼩题5分)1.简述计量经济学与经济学、统计学、数理统计学学科间的关系。
2.计量经济模型有哪些应⽤? 3.简述建⽴与应⽤计量经济模型的主要步骤。
4.对计量经济模型的检验应从⼏个⽅⾯⼊⼿?5.计量经济学应⽤的数据是怎样进⾏分类的? 6.在计量经济模型中,为什么会存在随机误差项?8.总体回归模型与样本回归模型的区别与联系。
9.试述回归分析与相关分析的联系和区别。
11.简述BLUE 的含义。
决策树(ID3 C4.5 CART)原理+推导+代码文章目录简介初识决策树特征选择信息增益信息增益比ID3C4.5决策树剪枝CART 分类与回归树简述:回归树的生成分类树的生成CART剪枝优缺点决策树ID3、C4.5算法CART分类与回归树适用场景代码决策树模型,自己总结了很久,也认为比较全面了。
现在分享一下自己总结的东西。
这里面我只捡精炼的说,基本上都是干货,然后能用人话说的,我也不会疯狂排列数学公式。
初识决策树决策树其实是用于分类的方法,尤其是二分类就是是非题,不过当然不限于二分,然后CART可以应用于分类和回归。
其中对于回归的处理让我很是佩服。
树形结构模型,可以理解为if-else集合。
三个步骤特征选择生成决策树节点和有向边组成。
结点包括内节点(一个特征和属性)叶子节点(一个类)先看一下模型图每个有向边都是一条规则,节点出度规则是完备的。
算法基本流程根据训练集生成决策树。
根据测试集剪枝。
特征选择特征选择我们有一个潜意识里的认识,就是希望选取对于分类有帮助的特征。
那么这里采用信息增益的指标来判断。
什么是信息增益?信息增益什么是熵用来度量随机变量的不确定性的,熵越大,不确定性越高。
所以我们得到了信息增益的算法:根据上述方法我们可以得到一个属性的排序。
信息增益比根据上面的公式其实是更有益于选择那些属性值多的属性,这是需要改进的,所以我们增加一个分母。
得到信息增益比的定义:知道了我们如何选择特征了,接下来就是生成决策树的算法了,一共有两种,先介绍一下ID3。
简单来说就是根据信息增益从大到小进行排序来选择结点。
算法简述:从根节点开始,选择信息增益最大的属性来划分children结点。
然后选择每个孩子结点来作为根节点,再根据信息增益选择下一个属性来划分。
当信息增益小于阈值,或者没有剩余属性的时候停止。
这里其实思想完全和ID3一样,唯一不同的就是使用的是信息增益比。
决策树剪枝当我们把所有的属性或者过多的属性来生成决策树的时候,很可能过拟合,也就是说对于训练集有很好的表现,但是在真正的预测阶段不尽如人意。
所以我们进行剪枝操作:极小化决策树整体损失函数。
首先来看一下损失函数的定义:抱歉这里我写的有点乱,解释一下。
Nt表示的是叶子节点t有多少个样本点。
Ht(T)表示叶子节点t上的熵,然后求解方法和上面说到的熵的求解是一样的。
然后第二项是一个正则项,也就是把对模型的复杂度的要求加入进来。
用|T|,叶子节点的个数来表示模型复杂度。
那么第一项就是整个模型的误差了,肯定是越小越好的。
然后α控制模型的复杂度,具体的在上述图片的下面。
剪枝的过程描述:计算每个节点的经验熵递归:从每个叶子结点回缩,也就是向上递归,如果去掉子树的随时函数小于不去掉之前的随时函数,就要剪枝。
CART 分类与回归树CART是二叉树,左是右否剪枝的时候使用测试集交叉验证,然后随时函数作为标准。
生成:回归树使用平方误差最小化,分裂树使用基尼指数。
回归树的生成遵循最小二乘生成法这里很难理解。
首先我们想要对于连续的数据使用树的结构来分解,最终就是得到的每个叶子节点一定是一个空间。
然后在这个空间里面对应着预测值y。
那么其中的关键就是如何将输入空间进行划分。
这里使用的是自启发的方法,来找到最优的分割点。
(也叫决策点)上面是统计学习一书中的解释,可能会有些晦涩,简单来说,大家可以联想最小二乘法,如果你对于最小二乘法的思想不理解的话,真的不可能看懂这个方法的精髓。
给大家推荐一个最小二乘法的blog,我认为写的非常好。
然后最终得到的x(j) = s,就是最优的决策点。
然后用这个点来划分空间。
一个决策点就划分了两个空间,然后在对这两个空间使用同样的方法。
将连续的数据使用离散的模型表示出来了。
由此决策树的生成就完成了。
分类树的生成分类树的生成使用的是基尼系数。
其实基尼系数和信息增益所表达的是一样的。
定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。
Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。
基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率所以这里树的生成和ID3同样是一样的。
不在多赘述。
CART剪枝CART的剪枝有些复杂,目的是生成一个子树序列,然后通过交叉验证来选择最优子树。
决策树易于理解和解释,可以可视化分析,容易提取出规则;可以同时处理标称型和数值型数据;比较适合处理有缺失属性的样本;能够处理不相关的特征;测试数据集时,运行速度比较快;在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
容易发生过拟合(随机森林可以很大程度上减少过拟合);容易忽略数据集中属性的相互关联;对于那些各类别样本数量不一致的数据,在决策树中,进行属性划分时,不同的判定准则会带来不同的属性选择倾向;信息增益准则对可取数目较多的属性有所偏好(典型代表ID3算法),而增益率准则(CART)则对可取数目较少的属性有所偏好,但CART进行属性划分时候不再简单地直接利用增益率尽心划分,而是采用一种启发式规则)(只要是使用了信息增益,都有这个缺点,如RF)。
ID3算法计算信息增益时结果偏向数值比较多的特征。
改进措施对决策树进行剪枝。
可以采用交叉验证法和加入正则化的方法;使用基于决策树的combination算法,如bagging算法,randomforest 算法,可以解决过拟合的问题。
ID3、C4.5算法产生的分类规则易于理解,准确率较高。
在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效;C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。
CART分类与回归树非常灵活,可以允许有部分错分成本,还可指定先验概率分布,可使用自动的成本复杂性剪枝来得到归纳性更强的树;在面对诸如存在缺失值、变量数多等问题时CART 显得非常稳健。
适用场景企业管理实践,企业投资决策,由于决策树很好的分析能力,在决策过程应用较多。
import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mplfrom sklearn.tree import DecisionTreeClassifierdef iris_type(s):it = {b'Iris-setosa': 0, b'Iris-versicolor': 1, b'Iris-virginica': 2}return it[s]iris_feature = u'花萼长度', u'花萼宽度', u'花瓣长度', u'花瓣宽度'if __name__ == "__main__":mpl.rcParams['font.sans-serif'] = [u'SimHei']mpl.rcParams['axes.unicode_minus'] = Falsepath = '.-dataSet-iris.data' # 数据文件路径data = np.loadtxt(path, dtype=float, delimiter=',', converters={4: iris_type})x_prime, y = np.split(data, (4,), axis=1)feature_pairs = [[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3]]plt.figure(figsize=(10, 9), facecolor='#FFFFFF')for i, pair in enumerate(feature_pairs):# 准备数据x = x_prime[:, pair]# 决策树学习clf = DecisionTreeClassifier(criterion='entropy', min_samples_leaf=3)dt_clf = clf.fit(x, y)N, M = 500, 500x1_min, x1_max = x[:, 0].min(), x[:, 0].max()x2_min, x2_max = x[:, 1].min(), x[:, 1].max()t1 = np.linspace(x1_min, x1_max, N)t2 = np.linspace(x2_min, x2_max, M)x1, x2 = np.meshgrid(t1, t2)x_test = np.stack((x1.flat, x2.flat), axis=1)y_hat = dt_clf.predict(x)y = y.reshape(-1)c = np.count_nonzero(y_hat == y) # 统计预测正确的个数print('特征:', iris_feature[pair[0]], ' + ', iris_feature[pair[1]])print('t预测正确数目:', c)print('t准确率: %.2f%%' % (100 * float(c) - float(len(y)))) cm_light = mpl.colors.ListedColormap(['#A0FFA0', '#FFA0A0', '#A0A0FF'])cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])y_hat = dt_clf.predict(x_test) # 预测值y_hat = y_hat.reshape(x1.shape)plt.subplot(2, 3, i+1)plt.pcolormesh(x1, x2, y_hat, cmap=cm_light)plt.scatter(x[:, 0], x[:, 1], c=y, edgecolors='k', cmap=cm_dark)plt.xlabel(iris_feature[pair[0]], fontsize=14)plt.ylabel(iris_feature[pair[1]], fontsize=14)plt.xlim(x1_min, x1_max)plt.ylim(x2_min, x2_max)plt.grid()plt.suptitle(u'决策树对鸢尾花数据的两特征组合的分类结果', fontsize=18)plt.tight_layout(2)plt.subplots_adjust(top=0.92)plt.show()大家共勉~欢迎指正Gini(p) = sum_{k=1}^{K}p_k (1 - p_k) = 1 - sum_{k=1}^{K} {p_k}^2 容易求得在R1R1,R2R2内部使得平方损失误差达到最小值的c1c1,c2c2为:bestIndex = featIndex# 对于每一个可能的二分结果计算gini增益list1.append(row){married} | {single,divorced}{single} | {married,divorced}{divorced} | {single,married}(2)两个特征取值之间的中点作为可能的分裂点,将数据集分成两部分,计算每个可能的分裂点的GiniGain。