sklearn.tree.DecisionTreeClassifier()函数用于构建决策树,默认使用CART算法,现对该函数参数进行说明,参考的是scikit-learn 0.20.3版本。

   sklearn.tree.DecisionTreeClassifier(criterion=’gini’splitter=’best’max_depth=Nonemin_samples_split=2min_samples_leaf=1min_weight_fraction_leaf=0.0max_features=Nonerandom_state=Nonemax_leaf_nodes=Nonemin_impurity_decrease=0.0min_impurity_split=Noneclass_weight=Nonepresort=False)

criterion:选择结点划分质量的度量标准,默认使用‘gini’,即基尼系数,基尼系数是CART算法中采用的度量标准,该参数还可以设置为 “entropy”,表示信息增益,是C4.5算法中采用的度量标准。

splitter:结点划分时的策略,默认使用‘best’。‘best’ 表示依据选用的criterion标准选用最优划分属性来划分该结点,一般用于训练样本数据量不大的场合,因为选择最优划分属性需要计算每种候选属性下划分的结果;该参数还可以设置为“random”,表示最优的随机划分属性,一般用于训练数据量较大的场合,可以减少计算量,但是具体如何实现最优随机划分暂时不太明白,这需要查看该部分的源码。

max_depth:设置决策树的最大深度,默认为None。None表示不对决策树的最大深度作约束,直到每个叶子结点上的样本均属于同一类,或者少于min_samples_leaf参数指定的叶子结点上的样本个数。也可以指定一个整型数值,设置树的最大深度,在样本数据量较大时,可以通过设置该参数提前结束树的生长,改善过拟合问题,但一般不建议这么做,过拟合问题还是通过剪枝来改善比较有效。

min_samples_split:当对一个内部结点划分时,要求该结点上的最小样本数,默认为2。

min_samples_leaf:设置叶子结点上的最小样本数,默认为1。当尝试划分一个结点时,只有划分后其左右分支上的样本个数不小于该参数指定的值时,才考虑将该结点划分,换句话说,当叶子结点上的样本数小于该参数指定的值时,则该叶子节点及其兄弟节点将被剪枝。在样本数据量较大时,可以考虑增大该值,提前结束树的生长。

min_weight_fraction_leaf :在引入样本权重的情况下,设置每一个叶子节点上样本的权重和的最小值,一旦某个叶子节点上样本的权重和小于该参数指定的值,则该叶子节点会联同其兄弟节点被减去,即其父结点不进行划分。该参数默认为0,表示不考虑权重的问题,若样本中存在较多的缺失值,或样本类别分布偏差很大时,会引入样本权重,此时就要谨慎设置该参数。

max_features:划分结点、寻找最优划分属性时,设置允许搜索的最大属性个数,默认为None。假设训练集中包含的属性个数为n,None表示搜索全部n个的候选属性;‘auto’表示最多搜索sqrt(n)个属性;sqrt表示最多搜索sqrt(n)个属性;‘log2’表示最多搜索log2(n)个属性;用户也可以指定一个整数k,表示最多搜索k个属性。需要说明的是,尽管设置了参数max_features,但是在至少找到一个有效(即在该属性上划分后,criterion指定的度量标准有所提高)的划分属性之前,最优划分属性的搜索不会停止。

random_state :当将参数splitter设置为‘random’时,可以通过该参数设置随机种子号,默认为None,表示使用np.random产生的随机种子号。

max_leaf_nodes : 设置决策树的最大叶子节点个数,该参数与max_depth等参数参数一起,限制决策树的复杂度,默认为None,表示不加限制。

min_impurity_decrease :打算划分一个内部结点时,只有当划分后不纯度(可以用criterion参数指定的度量来描述)减少值不小于该参数指定的值,才会对该结点进行划分,默认值为0。可以通过设置该参数来提前结束树的生长。

min_impurity_split : 打算划分一个内部结点时,只有当该结点上的不纯度不小于该参数指定的值时,才会对该结点进行划分,默认值为1e-7。该参数值0.25版本之后将取消,由min_impurity_decrease代替

class_weight:设置样本数据中每个类的权重,这里权重是针对整个类的数据设定的,默认为None,即不施加权重。用户可以用字典型或者字典列表型数据指定每个类的权重,假设样本中存在4个类别,可以按照 [{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}] 这样的输入形式设置4个类的权重分别为1、5、1、1,而不是 [{1:1}, {2:5}, {3:1}, {4:1}]的形式。该参数还可以设置为‘balance’,此时系统会按照输入的样本数据自动的计算每个类的权重,计算公式为:n_samples / ( n_classes * np.bincount(y) ),其中n_samples表示输入样本总数,n_classes表示输入样本中类别总数,np.bincount(y) 表示计算属于每个类的样本个数,可以看到,属于某个类的样本个数越多时,该类的权重越小。若用户单独指定了每个样本的权重,且也设置了class_weight参数,则系统会将该样本单独指定的权重乘以class_weight指定的其类的权重作为该样本最终的权重。

presort : 设置对训练数据进行预排序,以提升结点最优划分属性的搜索,默认为False。在训练集较大时,预排序会降低决策树构建的速度,不推荐使用,但训练集较小或者限制树的深度时,使用预排序能提升树的构建速度。

sklearn.tree.DecisionTreeClassifier 详细说明的更多相关文章

  1. 树型权限管理插件:jQuery Tree Multiselect详细使用指南

    1.认识jQuery Tree Multiselect 这个插件允许用户以树型的形式来呈现列表复选框的选择.多用于权限管理中用于分配不同的权限.使用文档,请参考:     https://github ...

  2. easyui -tree的详细讲解

    代码的具体实现 @{    ViewBag.Title = "人员查找";    ViewBag.LeftWidth = "200px";    ViewBag ...

  3. sklearn.neighbors.NNeighborsClassifier 详细说明

    平时会用到sklearn.neighbors.NNeighborsClassifier函数来构建K最邻近分类器,所以这里对NNeighborsClassifier中的参数进行说明,文中参考的是scik ...

  4. sklearn 学习之分类树

    概要 基于 sklearn 包自带的 iris 数据集,了解一下分类树的各种参数设置以及代表的意义.   iris 数据集介绍 iris 数据集包含 150 个样本,对应数据集的每行数据,每行数据包含 ...

  5. sklearn官网-多分类问题

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  6. sklearn学习总结(超全面)

    https://blog.csdn.net/fuqiuai/article/details/79495865 前言sklearn想必不用我多介绍了,一句话,她是机器学习领域中最知名的python模块之 ...

  7. 决策树在sklearn中的实现

    1 概述 1.1 决策树是如何工作的 1.2 构建决策树 1.2.1 ID3算法构建决策树 1.2.2 简单实例 1.2.3 ID3的局限性 1.3 C4.5算法 & CART算法 1.3.1 ...

  8. 基于sklearn的分类器实战

    已迁移到我新博客,阅读体验更佳基于sklearn的分类器实战 完整代码实现见github:click me 一.实验说明 1.1 任务描述 1.2 数据说明 一共有十个数据集,数据集中的数据属性有全部 ...

  9. 机器学习之决策树原理和sklearn实践

    1. 场景描述 时间:早上八点,地点:婚介所 '闺女,我有给你找了个合适的对象,今天要不要见一面?' '多大?' '26岁' '长的帅吗?' '还可以,不算太帅' '工资高吗?' '略高于平均水平' ...

随机推荐

  1. 霍夫曼编码(Huffman)

    题目:有一个字符串:cabcedeacacdeddaaaba,问题: (1)采用霍夫曼编码画出编码的过程,并写出各字符的编码 (2)根据求得的编码,求得各编码需要的总位数 (3)求出整个字符串总编码长 ...

  2. Linux下快速搭建测试网站DVWA

    DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者更好的理解Web ...

  3. ImageMagick实现图片加水印(ImageMagick6.9.10)

    一,ImageMagick的安装 请参见: https://www.cnblogs.com/architectforest/p/12807514.html 说明:刘宏缔的架构森林是一个专注架构的博客, ...

  4. 第十五章 nginx七层负载均衡

    一.Nginx负载均衡 1.为什么做负载均衡 当我们的Web服务器直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台Web服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到 ...

  5. 【Azure Redis 缓存 Azure Cache For Redis】Redis出现 java.net.SocketTimeoutException: Read timed out 异常

    问题描述 在使用Azure Redis时,遇见Read Timed out异常, Redis的客户端使用的时jedis.问题发生时,执行redis部分指令出错,大部分get指令,set指令能正常执行. ...

  6. windows下安装mongodb4.x版本

    一个无名前辈的血汗经验,提醒来者 现在mongod出到4.x的版本,而网上的大多数教程是针对3.x的版本的.在4.x的版本中,不要再试图使用自定义安装,我搞了3个多小时都没搞定,如果土豪c盘很大,直接 ...

  7. UVA 12298 Super Poker II (FFT)

    #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using ...

  8. forword与redirect

    1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地 ...

  9. zctf2016_note2:一个隐蔽的漏洞点挖掘

    代码量挺大的,逆起来有难度 功能挺全,啥都有 main函数 add函数,有heaparray并且无pie保护,考虑unlink show函数,可以泄漏地址用 edit函数,有两种edit方式 dele ...

  10. vue 在nginx下页面刷新出现404问题解决和在nginx下页面加载了js但是页面显示空白问题解决

    一.vue 在nginx下页面刷新出现404 在网上翻遍了所有这样问题的解决办法,全都是一个解决办法也是正确的解决办法,(后来在vue官网上关于history方式出现404解决方法也是这样说的),只是 ...