文章目录

  • RandomForestClassifier
  • RandomForestRegressor

RandomForestClassifier
RandomForestRegressor

RandomForestClassifier

from sklearn.ensemble import RandomForestClassifier
RandomForestClassifier(n_estimators=100, *, criterion='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,min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None,random_state=None, verbose=0, warm_start=False, class_weight=None, ccp_alpha=0.0, max_samples=None)

描述

随机森林分类器。
随机森林—用数据集子集拟合了许多决策树分类器,并使用平均数来提高预测准确性和控制过拟合。
如果bootstrap = True(默认值),则使用max_samples参数控制子样本大小,否则将使用整个数据集来构建每棵树。

参数

n_estimators : integer, optional (default=10) 整数,可选择(默认值为10)。
随机森林中决策树分类器的数目

criterion : {“gini”, “entropy”}, default=”gini”
衡量分裂质量的性能(函数)。 受支持的标准是基尼不纯度的"gini",和信息增益的"entropy"(熵)。
注意:这个参数是特定树的。
首先Gini不纯度和Gini系数(coefficient)没有关系。Gini impurity衡量的是从一个集合中随机选择一个元素,基于该集合中标签的概率分布为元素分配标签的错误率。对于任何一个标签下的元素,其被分类正确的条件概率可以理解为在选择元素时选中该标签的概率与在分类时选中该标签的概率。基于上述描述,Gini impurity的计算就非常简单了,即1减去所有分类正确的概率,得到的就是分类不正确的概率。

max_depth : int, default=None
(决策)树的最大深度。如果值为None,那么会扩展节点,直到所有的叶子是纯净的(叶节点的所有数据类别都相同),或者直到所有叶子包含少于min_sample_split的样本。

min_samples_split : int or float, default=2
分割内部节点所需要的最小样本数量:
1. 如果为int,那么考虑min_samples_split作为最小的数字。
2. 如果为float,那么min_samples_split是一个百分比,并且把ceil(min_samples_split*n_samples)是每一个分割最小的样本数量

min_samples_leaf : int or float, default=1
需要在叶子结点上的最小样本数量:
1. 如果为int,那么考虑min_samples_leaf作为最小的数字。
2. 如果为float,那么min_samples_leaf为一个百分比,并把ceil(min_samples_leaf*n_samples)是每一个节点的最小样本数量

min_weight_fraction_leaf : float, default=0.0
一个叶子节点所需要的权重总和(所有的输入样本)的最小加权分数。当sample_weight没有提供时,样本具有相同的权重

max_features : {“auto”, “sqrt”, “log2”}, int or float, default=”auto”
寻找最佳分割时需要考虑的特征数目:
1.如果是int,就要考虑每一次分割处的max_feature特征
2.如果是float,那么max_features就是一个百分比,那么(max_feature*n_features)特征整数值是在每个分割处考虑的。
3.如果是auto,那么max_features=sqrt(n_features),即n_features的平方根值。
4.如果是log2,那么max_features=log2(n_features)
5.如果是None,那么max_features=n_features
注意:寻找分割点不会停止,直到找到最少一个有效的节点划分区,即使它需要有效检查超过max_features的特征。

max_leaf_nodes : int, default=None
以最优的方法使用max_leaf_nodes来生长树。最好的节点被定义为不纯度上的相对减少。如果为None,那么不限制叶子节点的数量。

min_impurity_decrease : float, default=0.0
如果节点的分裂导致的不纯度的下降程度大于或者等于这个节点的值,那么这个节点将会被分裂。
不纯度加权减少方程式如下:

N是样本总的数量,N_t是当前节点处的样本数量,N_t_L是左孩子节点样本的数量,还有N_t_R是右孩子节点的样本数量。
N,N_t,N_t_R和N_t_L全部是指加权总和,如果sample_weight通过的话。

bootstrap : bool, default=True
建立决策树时,是否使用有放回抽样。

oob_score : bool, default=False
是否使用袋外样本来估计泛化精度

n_jobs : int, default=None
用于拟合和预测的并行运行的工作(作业)数量。如果值为-1,那么工作数量被设置为核的数量。

random_state : int, RandomState instance or None, default=None
random_state是随机数生成器使用的种子; 如果是RandomState实例,random_state就是随机数生成器; 如果为None,则随机数生成器是np.random使用的RandomState实例。

verbose : int, default=0
控制决策树建立过程的冗余度

warm_start : bool, default=False
当被设置为True时,重新使用之前呼叫的解决方案,用来给全体拟合和添加更多的估计器,反之,仅仅只是为了拟合一个全新的森林。

class_weight : {“balanced”, “balanced_subsample”}, dict or list of dicts, default=None
“balanced_subsample” 或者None,(默认值为None),与格式{class_label: weight}相关联的类的可选的权值。如果没有给值,所有的类都应该有一个权值。对于多输出问题,一个字典序列可以按照y的列的顺序被提供。

请注意,对于多输出(包括多标签),其权值应该被定义为它自己字典的每一列的每一个类。例如,对于四类多标签分类,权值应该如[{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}, {0: 1, 1: 1}] 这样,而不是[{1:1}, {2:5}, {3:1}, {4:1}].这样。
"balanced"模式使用y的值来自动的调整权值,与输入数据中类别频率成反比,如:
n_samples / (n_classes * np.bincount(y))
"balanced_subsample"模式和"balanced"相同,除了权值是基于每棵成长树有放回抽样计算的。
对于多输出,y的每列权值将相乘。
请注意,如果指定了sample_weight,这些权值将会和sample_weight相乘(通过拟合方法传递)

ccp_alpha : non-negative float, default=0.0
用于最小成本复杂性修剪的复杂性参数,将选择成本复杂度最大且小于ccp_alpha的子树。
默认情况下,不执行修剪。

max_samples : int or float, default=None
如果bootstrap为真,则从X中抽取样本数来训练每个基估计量。
如果为None(默认值),则绘制X.shape[0]样本。
如果是int,则绘制max_samples样本。
如果是浮动,那么绘制max_samples * X.shape[0]样本。因此,max_samples应该在(0,1)区间内

属性

base_estimator_ : DecisionTreeClassifier
基本分类器

estimators_ : list of DecisionTreeClassifier
拟合的子估计器的集合

classes_ : ndarray of shape (n_classes,) or a list of such arrays
类别标签(单一输出问题),或者类别标签的数组序列(多输出问题)

n_classes_ : int or list
类别的数量(单输出问题),或者一个序列,包含每一个输出的类别数量(多输出问题)

n_features_ : int
执行拟合时的特征数量

n_outputs_ : int
执行拟合时的输出数量

feature_importances : ndarray of shape (n_features,)
特征重要性(越大特征越重要)

oob_score_ : float
袋外数据集的评分

oob_decision_function_ : ndarray of shape (n_samples, n_classes)
仅当oob_score为True时,此属性才存在,袋外数据评估的特征重要性

方法

apply(X) : 将决策树应用于X,返回叶子索引
decision_path(X) : 返回森林中的决策路径
fit(X, y[, sample_weight]):从训练集(X, y)中构建一个森林
get_params([deep]):获得这个估计器的参数
predict(X):预测类x
predict_log_proba(X):预测X的类对数概率
predict_proba(X): 预测X的类概率
score(X, y[, sample_weight]):返回给定测试数据和标签的平均精确度
set_params(**params) : 设置估计器参数

RandomForestRegressor

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

描述

随机森林回归器
随机森林—用数据集子集拟合了许多决策树分类器,并使用平均数来提高预测准确性和控制过拟合。
如果bootstrap = True(默认值),则使用max_samples参数控制子样本大小,否则将使用整个数据集来构建每棵树

参数

criterion : {“mse”, “mae”}, default=”mse”
默认值为 ‘mse’—均方误差,是衡量回归效果的指标。可选的还有‘mae’ —平均绝对误差

剩下的参数与分类器中属性一致

属性

oob_prediction_ : ndarray of shape (n_samples,)
使用训练集的实际估计值计算预测,仅当oob_score为True时,此属性才存在

剩下的属性与分类器中属性一致

方法
与上面叙述一致

6.2 API : RandomForestClassifier与RandomForestRegressor相关推荐

  1. 详解| Sklearn—GridSearch 调参函数

    Abstract:GridSearch是Sklearn里的一个调参函数.本文是对此函数的详细解释. 1.参数搜索 参数并非从estimators中直接学到的,可以通过设置一个参数搜索空间来找到最佳的c ...

  2. [干货]Kaggle热门 | 用一个框架解决所有机器学习难题

    新智元推荐 来源:LinkedIn 作者:Abhishek Thakur 译者:弗格森 [新智元导读]本文是数据科学家Abhishek Thakur发表的Kaggle热门文章.作者总结了自己参加100 ...

  3. python利用决策树进行特征选择

    python利用决策树进行特征选择(注释部分为绘图功能),最后输出特征排序: import numpy as np import tflearn from tflearn.layers.core im ...

  4. A Complete Tutorial on Tree Based Modeling from Scratch (in R Python)

    转载自: http://www.analyticsvidhya.com/blog/2016/04/complete-tutorial-tree-based-modeling-scratch-in-py ...

  5. scikit_learn 官方文档翻译(集成学习)

    1.11. Ensemble methods(集成学习) 目标: 相对于当个学习器,集成学习通过使用多个基学习器的预测结果来来提高学习预测的泛化性能以及鲁棒性: 集成学习的两个思路: 1).通过使用并 ...

  6. scikit-learn机器学习常用算法原理及编程实战(五)

    决策树 决策树是最经典的机器学习模型之一.预测速度快,可以处理类别型数据和连续型数据.通过本章读者可以掌握以下内容: 信息熵及信息增益的概念,以及决策树的分裂的原则: 决策树的创建及剪枝算法: sci ...

  7. 基于scikit-learn的随机森林调参实战

    写在前面 在之前一篇机器学习算法总结之Bagging与随机森林中对随机森林的原理进行了介绍.还是老套路,学习完理论知识需要实践来加深印象.在scikit-learn中,RF的分类类是RandomFor ...

  8. Sklearn-RandomForest

    在scikit-learn中,RandomForest的分类类是RandomForestClassifier,回归类是RandomForestRegressor,需要调参的参数包括两部分,第一部分是B ...

  9. 9 张手绘图:阐明机器学习模型训练全流程

    Datawhale干货 译者:张峰,安徽工业大学,Datawhale成员 周末在家无聊闲逛github,发现一个很有趣的开源项目,作者用手绘图的方式讲解了机器学习模型构建的全流程,逻辑清晰.生动形象. ...

  10. 树模型(1)-入门指南

    原文地址:https://www.analyticsvidhya.com/blog/2016/04/complete-tutorial-tree-based-modeling-scratch-in-p ...

最新文章

  1. 图解|零拷贝Zero-Copy技术大揭秘
  2. Zookeeper源码用ant进行编译为eclipse工程--转载
  3. 我们找阿里云资深技术专家李响聊了聊开源和云原生
  4. perl中q,qq,qw,qr的区别。
  5. ejb jsf jpa_完整的WebApplication JSF EJB JPA JAAS –第1部分
  6. java面向对象笔试_Java面向对象笔试题.doc
  7. python hadoop_让python在hadoop上跑起来
  8. android adb login,adb
  9. CODESYS Automation Server
  10. mysql查询bom清单_U8 数据库BOM表SQL语句查询
  11. 【萧蕊冰】ui设计和交互设计的区别是什么?
  12. 不太会说话,怎样提高说话的技巧?
  13. DB2 PC服务器本地磁盘集群部署模式简介
  14. 长沙 22 岁女子长期过量喝奶茶进ICU,血糖值过高,血液呈乳白色几乎变「甜饮」,奶茶喝多少会有危险?
  15. python读取Excel绘制饼图的两种方式
  16. 基于Haar + adaboost人脸识别
  17. ACM 投稿时CCS CONCEPTS 生成及插入
  18. 第一次去中关村图书大厦
  19. 苹果平板哪款电容笔好用?超好用的苹果平板电容笔推荐
  20. el-table动态添加行,列。自定义输入表头,input hover 显示文字

热门文章

  1. python urllib编码
  2. 【vs2019MFC】msvcrtd.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 “int __cdecl invoke_mai
  3. netflix-hystrix-简例
  4. Euler Tour Tree与dynamic connectivity
  5. 删除文件批处理delete file.bat
  6. JavaScript如何获取css属性
  7. 从错误中学习,如何配置iis?
  8. 为什么需要软件过程改善(Software Process Improvement)?
  9. 惰性函数定义模式 网页设计
  10. 初学Linux (Linux_note)