文章目录

  • 随机森林分类器
    • 引入
    • 重要参数
      • 1,n_estimators
      • 2,criterion
      • 3,max_depth
      • 4,min_samples_leaf
      • 5,min_samples_split
      • 7,max_features
      • 8,class_weight
      • 9,max_leaf_nodes
      • 10,oob_score
      • 11,verbose
    • 重要属性
    • 重要方法
  • 随机森林回归器

随机森林分类器

引入

from sklearn.ensemble import RandomForestClassifier
# 全部参数
RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,criterion='gini', max_depth=None, max_features='auto',max_leaf_nodes=None, max_samples=None,min_impurity_decrease=0.0, min_impurity_split=None,min_samples_leaf=1, min_samples_split=2,min_weight_fraction_leaf=0.0, n_estimators=100,n_jobs=None, oob_score=False, random_state=None,verbose=0, warm_start=False)

重要参数

1,n_estimators

数值型参数,默认值为100,此参数指定了弱分类器的个数。设置的值越大,精确度越好,但是当 n_estimators 大于特定值之后,带来的提升效果非常有限。

推荐的参数值为:[120, 300, 500, 800, 1200]

2,criterion

字符串类型,默认值为 ‘gini’。这个参数指定划分子树的评估标准:

  1. ‘entropy’,使用基于信息熵的方法,即计算信息增益
  2. ‘gini’,使用基尼系数(Gini Impurity)

**推荐设置为 ‘gini’,**因为(1)基尼系数的计算过程相对简单,而计算信息增益需要进行对数运算。(2)使用信息增益作为划分标准时,在使用高纬度数据或者噪声很多的数据时容易过拟合。

3,max_depth

数值型,默认值None。这是与剪枝相关的参数,设置为None时,树的节点会一直分裂,直到:(1)每个叶子都是“纯”的;(2)或者叶子中包含⼩于min_sanples_split个样本。

推荐从 max_depth = 3 尝试增加,观察是否应该继续加大深度。

合适的取值可以是 [3, 5, 8, 15, 25, 30, None]

如果max_leaf_nodes参数非None,则忽略此项

4,min_samples_leaf

数值型,默认值1,指定每个叶子结点包含的最少的样本数。参数的取值除了整数之外,还可以是浮点数,此时(min_samples_leaf * n_samples)向下取整后的整数是每个节点的最小样本数。
此参数设置的过小会导致过拟合,反之就会欠拟合。调整过程:

  1. 从min_samples_leaf=5开始上下调整。
  2. 对于类别不多的分类问题,设置为1通常是合理的选择。
  3. 当叶节点包含样本数量差异很大时,建议设置为浮点数。

推荐的取值可以是:[1, 2, 5, 10]

5,min_samples_split

数值型,默认值2,指定每个内部节点(非叶子节点)包含的最少的样本数。与min_samples_leaf这个参数类似,可以是整数也可以是浮点数。

推荐的取值是:[1, 2, 5, 10, 15, 100]

7,max_features

可以为整数、浮点、字符或者None,默认值为None。此参数用于限制分枝时考虑的特征个数,超过限制个数的特征都会被舍弃。

  1. 如果是整数,则每次切分只考虑max_features个特征。
  2. 如果是浮点数,每次切分只考虑max_features*n_features个特征(max_features指定百分⽐)。
  3. 如果是字符串‘auto’,则max_features等于n_features。
  4. 如果是字符串‘sqrt’,则max_features等于sqrt(n_features)。
  5. 如果是字符串‘log2’,则max_features等于log2(n_features)。
  6. 如果是字符串None,则max_features等于n_features。

推荐的取值为:[‘log2’, ‘sqrt’, None]

8,class_weight

可以是列表、字典、或者字符串’balanced’,还可以是默认值None。这个参数主要是用于样本不平衡数据集,当设置为None时,所有类别样本权重都为1。也可以利用列表或者字典手动设置各个类别样本的权重,将样本较少的类别赋予更大的权重。当设置为’balanced’时,会自动根据样本出现的频率计算权重,即 n_samples / (n_classes * np.bincount(y))
推荐的设置为:[None, ‘balanced’]

9,max_leaf_nodes

数值型参数,默认值为None,即不限制最大叶子节点数。这个参数通过限制树的最大叶子数量来防止过拟合,如果设置了一个正整数,则会在建立的最大叶节点内的树中选择最优的决策树。如果特征不多,可以设置为None,否则可以设置为小于 2max_depth2^{max\_depth }2max_depth 的数值。

10,oob_score

bool类型参数,默认值为False,即是否采用袋外样本来评估模型的好坏。个人推荐设置为True,因为袋外分数反应了一个模型拟合后的泛化能力。

11,verbose

数值类型,默认值为0,表示不输出日志。如果为1,则每次迭代输出一次日志。如果大于1,则每间隔 verbose 此迭代输出一次日志。

重要属性

1,feature_importances_ ,给出了各个特征对模型的重要性。

2,oob_score_,训练数据使用的包外数据的得分。

重要方法

1,fit(X,y) : 训练模型。
2,predict(X) : 用模型预测,返回预测值。
3,predict_proba(X) : 返回一个数组,数组元素依次为各个样本属于各个类别的概率值。
4,score(X, y) : 返回在(X, y)上预测的准确率(accuracy)。

随机森林回归器

引入方式如下:

from sklearn.ensemble import RandomForestRegressor
# 所有参数
RandomForestRegressor(bootstrap=True, ccp_alpha=0.0, criterion='mse',max_depth=None, max_features='auto', max_leaf_nodes=None,max_samples=None, min_impurity_decrease=0.0,min_impurity_split=None, min_samples_leaf=1,min_samples_split=2, min_weight_fraction_leaf=0.0,n_estimators=100, n_jobs=None, oob_score=False,random_state=None, verbose=0, warm_start=False)

其中,参数criterion 是字符串类型,默认值为 ‘mse’,是衡量回归效果的指标。可选的还有‘mae’ 。

除了criterion这个参数之外,其他参数、属性、方法的含义与用法与上文提到的随机森林分类器的参数基本一致。

参考文章:

sklearn.ensemble.RandomForestClassifier

sklearn.ensemble.RandomForestRegressor

SKlearn中分类决策树的重要参数详解

sklearn 随机森林(分类器、回归器)的重要参数、属性、方法理解相关推荐

  1. [自用] 菜菜的sklearn 随机森林分类器

    目录 随机森林 1 概述 1.1 集成算法概述 1.2 sklearn中的集成算法 2 RandomForestClassifier 2.1 重要参数 建立一片森林 2.2 重要属性和接口 随机森林 ...

  2. sklearn的系统学习——随机森林分类器与随机森林回归器(含有python完整代码及案例)

    目录 集成算法 sklearn中的随机森林 随机森林分类器 随机性参数 属性 案例代码 随机森林回归器 案例代码 在前面的内容中,已经对决策树解决分类回归问题分别做了阐述,今天走进随机森林的世界. 什 ...

  3. Python+sklearn随机森林算法使用入门

    随机森林是一种集成学习方法,基本思想是把几棵不同参数的决策树(参考:Python+sklearn决策树算法使用入门)打包到一起,每棵决策树单独进行预测,然后计算所有决策树预测结果的平均值(适用于回归分 ...

  4. 用随机森林分类器和GBDT进行特征筛选

    一.决策树(类型.节点特征选择的算法原理.优缺点.随机森林算法产生的背景) 1.分类树和回归树 由目标变量是离散的还是连续的来决定的:目标变量是离散的,选择分类树:反之(目标变量是连续的,但自变量可以 ...

  5. sklearn 随机森林_初识随机森林及sklearn实现

    1.随机森林简介 (1)相关概念介绍:集成学习(Ensemble).自助法(bootstrap).自助抽样集成(bagging) 集成学习:组合多个弱监督模型得到一个更全全面的强监督模型,增强整体的泛 ...

  6. 随机森林分类器_建立您的第一个随机森林分类器

    随机森林分类器 In this post, I will guide you through building a simple classifier using Random Forest from ...

  7. python随机森林筛选变量_用随机森林分类器和GBDT进行特征筛选

    一.决策树(类型.节点特征选择的算法原理.优缺点.随机森林算法产生的背景) 1.分类树和回归树 由目标变量是离散的还是连续的来决定的:目标变量是离散的,选择分类树:反之(目标变量是连续的,但自变量可以 ...

  8. 《scikit-learn》随机森林之回归

    今天我们学习下随机森林做回归的用法 话不多说直接上测试代码,看的更加清晰,总体上和回归树是一样的使用流程 from sklearn.datasets import load_boston from s ...

  9. #第23篇分享:一个北京二手房价格数据挖掘实例(python语言:sklearn随机森林)

    #本次是做一个北京二手房的数据挖掘案例,主要是汇总一下学过的知识,并且通过实例加深一下印象,话不多说,开干: 目的:预测二手房的价格: 工具:语言python:爬虫模块scrapy,数据清洗:xpat ...

最新文章

  1. main函数或者run函数的一个作用
  2. java轻功游戏,会轻功又可以飞的游戏(3d大型游戏)
  3. RHEL5U8配置Centos yum源
  4. java 抽象类和接口2--什么时候用接口什么时候用抽象类
  5. 【笔记】js中的数组
  6. 10个痛点:IT部门如何面对边缘计算
  7. 学习windows内核一
  8. 完美电脑主机一拖二,让你夫妻不再抢电脑,一台主机两人独立玩
  9. 计算机专业数字逻辑,大学计算机专业数字逻辑课程试卷及答案(4份)
  10. 韦东山之学习笔记——NOR Flash
  11. 亿佰特Wifi模块、蓝牙模块和Zigbee模块协议在物联网智能家居上的应用指南
  12. PPT之如何设置一个箭头围绕一个顶点旋转?
  13. 奈奎斯特与香农定理_奈奎斯特定理和香农定理解析
  14. 十年开发技术 Bug 总结,程序员经验分享
  15. 前端开发的就业前景和收入怎么样啊
  16. 剑指Offer对答如流系列 - 用两个栈实现队列
  17. 2021年高处安装、维护、拆除考试试卷及高处安装、维护、拆除证考试
  18. 区块链知识系列 - 区块链大事记
  19. 学科实践活动感悟50字_包饺子实践活动感悟
  20. ip地址的概念和作用

热门文章

  1. jieba和thulac使用比较
  2. C++编程思想:指针,引用,拷贝构造函数,赋值运算符
  3. 计算机组成要素二:布尔运算:ALU算术运算器
  4. SVM(一) 问题的提出
  5. 你真的明白RPC 吗?一起来探究 RPC 的实质
  6. 一个nuxt(vue)+mongoose全栈项目聊聊我粗浅的项目架构
  7. mysql 基本操作
  8. Android RecyclerView和ScrollView嵌套使用
  9. 理解 TCP(五):可靠性交付的实现
  10. 2016-12-31:最后一天:回顾