sklearn.ensemble.RandomForest 参数详解

RandomForestRegressor 参数

    sklearn.ensemble.RandomForestRegressor(  n_estimators=10,
                                             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_split=1e-07,
                                             bootstrap=True,
                                             oob_score=False,
                                             n_jobs=1,
                                             random_state=None,
                                             verbose=0,
                                             warm_start=False)

RandomForestRegressor 参数详解(官方英文版)

英文详解

RandomForestRegressor 参数详解(中文版)

转自此处

其中关于决策树的参数:

  • criterion: “mse”来选择最合适的节点。

  • 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()处理。

要在Python中运行这些代码,你需要确保已经安装了相应的包。大多数包都可以使用`pip`进行安装。 首先,在命令行中运行以下命令来安装所需的包: ```bash pip install scikit-learn pandas matplotlib numpy ``` 然后,在你的Python脚本中导入所需的库: ```python from sklearn.model_selection import train_test_split from sklearn.decomposition import PCA import pandas as pd from sklearn import svm import numpy as np import math import matplotlib.pyplot as plt import matplotlib as mpl from matplotlib import colors from sklearn.model_selection import train_test_split from sklearn import datasets from matplotlib.colors import ListedColormap from sklearn.svm import SVC from sklearn.preprocessing import StandardScaler from sklearn.model_selection import StratifiedShuffleSplit, StratifiedKFold from sklearn.model_selection import GridSearchCV from sklearn.model_selection import GridSearchCV, LeaveOneOut, cross_val_predict from sklearn.model_selection import KFold from sklearn.linear_model import LogisticRegression from sklearn.naive_bayes import GaussianNB from sklearn.neighbors import KNeighborsClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score import datetime import multiprocessing as mp from sklearn.ensemble import StackingClassifier from sklearn.pipeline import make_pipeline from sklearn.svm import LinearSVC import random ``` 请确保在运行这些代码之前,已经安装了所需的Python库。如果遇到任何问题,请确保已正确安装这些库,并且版本与代码兼容。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值