Random Forest算法中的参数详解
本篇不是介绍RF的,关于RF网上有很多通俗易懂的解释
西瓜书与统计学习方法等很多教材中的解释也都足够
本篇仅针对如何使用sklearn中的RandomForestClassifier作记录
一、代码怎么写
- class sklearn.ensemble.RandomForestClassifier(n_estimators=10, crite-rion=’gini’, max_depth=None,
- min_samples_split=2, min_samples_leaf=1,
- min_weight_fraction_leaf=0.0,
- max_features=’auto’,
- max_leaf_nodes=None, bootstrap=True,
- oob_score=False, n_jobs=1, ran-dom_state=None, verbose=0,
- warm_start=False, class_weight=None)
二、关于参数
其中关于决策树的参数:
criterion: ”gini” or “entropy”(default=”gini”)是计算属性的gini(基尼不纯度)还是entropy(信息增益),来选择最合适的节点。
splitter: ”best” or “random”(default=”best”)随机选择属性还是选择不纯度最大的属性,建议用默认。
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.
max_depth: (default=None)设置树的最大深度,默认为None,这样建树时,会使每一个叶节点只有一个类别,或是达到min_samples_split。
min_samples_split:根据属性划分节点时,每个划分最少的样本数。
min_samples_leaf:叶子节点最少的样本数。
max_leaf_nodes: (default=None)叶子树的最大样本数。
min_weight_fraction_leaf: (default=0) 叶子节点所需要的最小权值
verbose:(default=0) 是否显示任务进程
关于随机森林特有的参数:
n_estimators=10:决策树的个数,越多越好,但是性能就会越差,至少100左右(具体数字忘记从哪里来的了)可以达到可接受的性能和误差率。
bootstrap=True:是否有放回的采样。
oob_score=False:oob(out of band,带外)数据,即:在某次决策树训练中没有被bootstrap选中的数据。多单个模型的参数训练,我们知道可以用cross validation(cv)来进行,但是特别消耗时间,而且对于随机森林这种情况也没有大的必要,所以就用这个数据对决策树模型进行验证,算是一个简单的交叉验证。性能消耗小,但是效果不错。
n_jobs=1:并行job个数。这个在ensemble算法中非常重要,尤其是bagging(而非boosting,因为boosting的每次迭代之间有影响,所以很难进行并行化),因为可以并行从而提高性能。1=不并行;n:n个并行;-1:CPU有多少core,就启动多少job
warm_start=False:热启动,决定是否使用上次调用该类的结果然后增加新的。
class_weight=None:各个label的权重。
进行预测可以有几种形式:
predict_proba(x):给出带有概率值的结果。每个点在所有label的概率和为1.
predict(x):直接给出预测结果。内部还是调用的predict_proba(),根据概率的结果看哪个类型的预测值最高就是哪个类型。
predict_log_proba(x):和predict_proba基本上一样,只是把结果给做了log()处理。
Random Forest算法中的参数详解相关推荐
- BLAST+中blastn参数详解
[转]BLAST+中blastn参数详解 2012-05-22 13:25 转载自 lidaof 最终编辑 lidaof 与之前的blast相比,新的blast+将blastn,blastx等合作 ...
- oracle安装过程中内核参数详解
转载网址:https://www.cnblogs.com/colben/p/4120439.html 在安装Oracle的时候需要调整linux的内核参数,但是各参数代表什么含义呢,下面做详细解析. ...
- 常用决策树集成模型Random Forest、Adaboost、GBDT详解
常用的集成学习策略 在之前的文章我有介绍过常用的基本决策树模型ID3.C4.5.CART算法,其中提到了一个关于基本决策树模型的缺点,那就是决策树模型学习一棵最优的决策树被认为是NP-Complete ...
- FFMPEG进阶系列03-ffmpeg转码专题(中)x264参数详解
文章目录 概述 版本 Presets(预设) tune slow-firstpass Frame-type options(帧类型选项) keyint min-keyint no-scenecut s ...
- Android AVD创建及设置中各参数详解
本文根据如下的模拟器安装做一些解释: 本文环境:Windows XP sp3,最新JAVa环境,android-sdk_r06-windows.zip,android 2.2 API Level 8, ...
- struts2 action中result参数详解
chain 用来处理Action链 com.opensymphony.xwork2.ActionChainResult dispatcher 用来转向页面,通常处理JSP org.apache.str ...
- OpenCV3中 HOGDescriptor 参数详解
最近在做数字识别,需要用一些特征检测的方法,所以研究了一下hog特征以及opencv3中的实现. 首先我们进入HOGDescriptor所在的头文件"objdetect.hpp", ...
- plt.scatter 中cmap参数详解
1.首先,cmap参数和c参数配合使用的.参数c可以是一个序列,如:plt.scatter(a,b,c=['b','r','b','r','b'],s=80) 此时c的序列是一个颜色序列,除了上述的简 ...
- linux中shmget参数详解
#include <sys/ipc.h> #include <sys/shm.h> int shmget (key_t key, size_t size, int shmflg ...
最新文章
- css3中的box-sizing属性
- 2013:奇虎360最好的时光
- 下一次大跃进?将机器人与物联网相结合
- VC++软件工程师高端培训
- C++ 中的左值(Lvalues)和右值(Rvalues)
- 计算机网络实验思考题汇总
- 「Python-Bug」错误requests.exceptions.proxyerror: httpsconnectionpool解决方法
- 通向架构师的道路(第五天)之tomcat集群-群猫乱舞
- JVM之堆Heap参数调优入门
- git 新建分支并切换到该分支_Git何谓分支
- linux mdev -s没有运行,mdev详解
- Magento : 直接下载扩展插件到本地 Extension
- 佳恩半导体完成数千万A轮融资
- Centos7 超简单将Centos的yum源更换为国内的阿里云源
- unix环境高级编程读后感
- Mac pro 中Word-PPT(office)常用快捷键--补充
- 武大、南开、南大、科大陈恩红组面试经验
- 计算机软件实习每日学习打卡(3)20201204
- MKS Robin nano V3.0主板使用RRF 固件教程
- Excel表格设置下拉选项并应用到整列及清除下拉项设置
热门文章
- JM与h264标准中的关键字说明
- docker build Dockfile ---- RUN 中 cd 切换路径失败 的原因、解决
- 事务相关、不可重复读与幻读的区别
- Django:学习笔记(2)——创建第一个应用
- Ubuntu安装之python开发
- HDU 5392 BC #51
- 使用ucontext组件实现的coroutine代码分析
- Oracle学习笔记:通过种子数据库设置dbid为指定值
- Java异常处理001:Maven clean package时Failed to clean project: Failed to delete
- 移动端真机测试怎么做