当前位置: 首页 > news >正文

sklearn中随机森林的参数

一:sklearn中决策树的参数:


1,criterion: ”gini” or “entropy”(default=”gini”)是计算属性的gini(基尼不纯度)还是entropy(信息增益),来选择最合适的节点。


2,splitter: ”best” or “random”(default=”best”)随机选择属性还是选择不纯度最大的属性,建议用默认。


3,max_features: 选择最适属性时划分的特征不能超过此值。

当为整数时,即最大特征数;当为小数时,训练集特征数*小数;
if “auto”, then max_features=sqrt(n_features).
If “sqrt”, thenmax_features=sqrt(n_features).
If “log2”, thenmax_features=log2(n_features).
If None, then max_features=n_features.


4,max_depth: (default=None)设置树的最大深度,默认为None,这样建树时,会使每一个叶节点只有一个类别,或是达到min_samples_split。


5,min_samples_split:根据属性划分节点时,每个划分最少的样本数。


6,min_samples_leaf:叶子节点最少的样本数。


7,max_leaf_nodes: (default=None)叶子树的最大样本数。

8,min_weight_fraction_leaf: (default=0) 叶子节点所需要的最小权值

9,verbose:(default=0) 是否显示任务进程


二:随机森林特有的参数:

1,n_estimators=10:决策树的个数,越多越好,但是性能就会越差,至少100左右(具体数字忘记从哪里来的了)可以达到可接受的性能和误差率。  


2,bootstrap=True:是否有放回的采样。  


3,oob_score=False:oob(out of band,带外)数据,即:在某次决策树训练中没有被bootstrap选中的数据。多单个模型的参数训练,我们知道可以用cross validation(cv)来进行,但是特别消耗时间,而且对于随机森林这种情况也没有大的必要,所以就用这个数据对决策树模型进行验证,算是一个简单的交叉验证。性能消耗小,但是效果不错。  


4,n_jobs=1:并行job个数。这个在ensemble算法中非常重要,尤其是bagging(而非boosting,因为boosting的每次迭代之间有影响,所以很难进行并行化),因为可以并行从而提高性能。1=不并行;n:n个并行;-1:CPU有多少core,就启动多少job。

  
5,warm_start=False:热启动,决定是否使用上次调用该类的结果然后增加新的。  


6,class_weight=None:各个label的权重。  


三:进行预测可以有几种形式:



1,predict_proba(x):给出带有概率值的结果。每个点在所有label的概率和为1.  

2,predict(x):直接给出预测结果。内部还是调用的predict_proba(),根据概率的结果看哪个类型的预测值最高就是哪个类型。  

3,predict_log_proba(x):和predict_proba基本上一样,只是把结果给做了log()处理。  


Random Forest和Gradient Tree Boosting参数详解,图片来源:https://www.zhihu.com/question/34470160

通过总结模型调参常见的问题,我们可以把模型的参数分为4类:目标类、性能类、效率类和附加类。下表详细地展示了4个模型参数的意义:

相关文章:

  • CHIL-ORACLE-修改密码
  • itunes 无法构建版本问题
  • 继续过中等难度的题目
  • Spring Boot整合WebSocket介绍
  • [技术选型] Node.js
  • Spring cloud子项目
  • oracle 11gR2 ASM添加和删除磁盘
  • x-editable java 后台怎么写
  • java----数据结构与算法----集合元素的遍历:迭代器--------JavaAPI:java.util.Iterator+java.util.ListIterator...
  • Leetcode 423. Reconstruct Original Digits from English
  • JAVA加密类的使用
  • javascript数组去重复
  • Java中Collections的frequency方法
  • ng之ng-app指令
  • 使用命令wsimport构建WebService客户端
  • 网络传输文件的问题
  • HTTP--网络协议分层,http历史(二)
  • javascript 总结(常用工具类的封装)
  • JS学习笔记——闭包
  • Redis的resp协议
  • SpriteKit 技巧之添加背景图片
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 基于HAProxy的高性能缓存服务器nuster
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 利用jquery编写加法运算验证码
  • 每天一个设计模式之命令模式
  • 试着探索高并发下的系统架构面貌
  • 数据可视化之 Sankey 桑基图的实现
  • 消息队列系列二(IOT中消息队列的应用)
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • #define 用法
  • (1)STL算法之遍历容器
  • (1)常见O(n^2)排序算法解析
  • (AngularJS)Angular 控制器之间通信初探
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (剑指Offer)面试题34:丑数
  • (全注解开发)学习Spring-MVC的第三天
  • (算法设计与分析)第一章算法概述-习题
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)【Hibernate总结系列】使用举例
  • (转)LINQ之路
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)shell调试方法
  • (转)母版页和相对路径
  • .“空心村”成因分析及解决对策122344
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .gitattributes 文件
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .Net Remoting常用部署结构
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况