您好,登录后才能下订单哦!
这篇文章主要介绍“sklearn随机森林的参数有哪些”,在日常操作中,相信很多人在sklearn随机森林的参数有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”sklearn随机森林的参数有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
随机森林
随机森林是一个元估计器,它适合数据集的各个子样本上的多个决策树分类器,并使用平均值来提高预测精度和控制过度拟合。子样本大小始终与原始输入样本大小相同,但如果bootstrap = True(默认值),则会使用替换来绘制样本。
先看这个类的参数:
class sklearn.ensemble.RandomForestClassifier(n_estimators=10, 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=1, random_state=None, verbose=0, warm_start=False, class_weight=None)
代码举例:
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_features=4,
n_informative=2, n_redundant=0,
random_state=0, shuffle=False)
clf = RandomForestClassifier(max_depth=2, random_state=0)
clf.fit(X, y)
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=2, max_features='auto', max_leaf_nodes=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=10, n_jobs=1,
oob_score=False, random_state=0, verbose=0, warm_start=False)
print(clf.feature_importances_)
[ 0.17287856 0.80608704 0.01884792 0.00218648]
print(clf.predict([[0, 0, 0, 0]]))
[1]
具体参数意义如下:
参数:
n_estimators :森林里(决策)树的数目
integer, optional (default=10) 整数,可选择(默认值为10)
criterion : string, optional (default=”gini”) 字符串,可选择(默认值为“gini”)。
衡量分裂质量的性能(函数)。受支持的标准是基尼不纯度的"gini",和信息增益的"entropy"(熵)。
注意:这个参数是特定树的。
max_features : int, float, string or None, optional (default=”auto”) 整数,浮点数,字符串或者无值,可选的(默认值为"auto")
寻找最佳分割时需要考虑的特征数目:
&如果是int,就要考虑每一次分割处的max_feature特征
&如果是float,那么max_features就是一个百分比,那么(max_feature*n_features)特征整数值是在每个分割处考虑的。
&如果是auto,那么max_features=sqrt(n_features),即n_features的平方根值。
&如果是log2,那么max_features=log2(n_features)
&如果是None,那么max_features=n_features
注意:寻找分割点不会停止,直到找到最少一个有效的节点划分区,即使它需要有效检查超过max_features的特征。
max_depth : integer or None, optional (default=None) 整数或者无值,可选的(默认为None)
(决策)树的最大深度。如果值为None,那么会扩展节点,直到所有的叶子是纯净的,或者直到所有叶子包含少于min_sample_split的样本。
min_samples_split : int, float, optional (default=2) 整数,浮点数,可选的(默认值为2)
分割内部节点所需要的最小样本数量:
~如果为int,那么考虑min_samples_split作为最小的数字。
~如果为float,那么min_samples_split是一个百分比,并且把ceil(min_samples_split*n_samples)是每一个分割最小的样本数量。
在版本0.18中更改:为百分比添加浮点值。
min_samples_leaf : int, float, optional (default=1) 整数,浮点数,可选的(默认值为1)
需要在叶子结点上的最小样本数量:
~如果为int,那么考虑min_samples_leaf作为最小的数字。
~如果为float,那么min_samples_leaf为一个百分比,并且ceil(min_samples_leaf*n_samples)是每一个节点的最小样本数量。
在版本0.18中更改:为百分比添加浮点值。
min_weight_fraction_leaf : float, optional (default=0.) 浮点数,可选的(默认值是0.0)
一个叶子节点所需要的权重总和(所有的输入样本)的最小加权分数。当sample_weight没有提供时,样本具有相同的权重
max_leaf_nodes : int or None, optional (default=None) 整数或者无值,可选的(默认值为None)
以最优的方法使用max_leaf_nodes来生长树。最好的节点被定义为不纯度上的相对减少。如果为None,那么不限制叶子节点的数量。
min_impurity_split : float, 浮点数
树早期生长的阈值。如果一个节点的不纯度超过阈值那么这个节点将会分裂,否则它还是一片叶子。
min_impurity_decrease : float, optional (default=0.) 浮点数,可选的(默认值为0)
bootstrap : boolean, optional (default=True) 布尔值,可选的(默认值为True)建立决策树时,是否使用有放回抽样。
oob_score : bool (default=False) bool,(默认值为False)是否使用袋外样本来估计泛化精度。
n_jobs : integer, optional (default=1) 整数,可选的(默认值为1)用于拟合和预测的并行运行的工作(作业)数量。如果值为-1,那么工作数量被设置为核的数量。
random_state : int, RandomState instance or None, optional (default=None) 整数,RandomState实例,或者为None,可选(默认值为None)RandomStateIf int,random_state是随机数生成器使用的种子; 如果是RandomState实例,random_state就是随机数生成器; 如果为None,则随机数生成器是np.random使用的RandomState实例。
verbose : int, optional (default=0) 整数,可选的(默认值为0)控制决策树建立过程的冗余度。
warm_start : bool, optional (default=False) 布尔值,可选的(默认值为False)当被设置为True时,重新使用之前呼叫的解决方案,用来给全体拟合和添加更多的估计器,反之,仅仅只是为了拟合一个全新的森林。
class_weight : dict, list of dicts, “balanced”, 字典,字典序列,"balanced"
属性:
estimators_ : list of DecisionTreeClassifier 决策树分类器的序列,拟合的子估计器的集合。
classes_ : array of shape = [n_classes] or a list of such arrays 数组维度=[n_classes]的数组或者一个这样数组的序列。类别标签(单一输出问题),或者类别标签的数组序列(多输出问题)。
n_classes_ : int or list 整数或者序列,类别的数量(单输出问题),或者一个序列,包含每一个输出的类别数量(多输出问题)
n_features_ : int 整数,执行拟合时的特征数量
n_outputs_ : int 整数,执行拟合时的输出数量。
feature_importances_ : array of shape = [n_features] 维度等于n_features的数组,特征的重要性(值越高,特征越重要)
oob_score_ : float 浮点数,使用袋外估计获得的训练数据集的得分。
oob_decision_function_ : array of shape = [n_samples, n_classes] 维度=[n_samples,n_classes]的数组,在训练集上用袋外估计计算的决策函数。如果n_estimators很小的话,那么在有放回抽样中,一个数据点也不会被忽略是可能的。在这种情况下,oob_decision_function_ 可能包括NaN。
注意点:
参数的默认值控制决策树的大小(例如,max_depth,,min_samples_leaf等等),导致完全的生长和在某些数据集上可能非常大的未修剪的树。为了降低内容消耗,决策树的复杂度和大小应该通过设置这些参数值来控制。
这些特征总是在每个分割中随机排列。 因此,即使使用相同的训练数据,max_features = n_features和bootstrap = False,如果在搜索最佳分割期间所列举的若干分割的准则的改进是相同的,那么找到的最佳分割点可能会不同。为了在拟合过程中获得一个确定的行为,random_state将不得不被修正。
方法:
apply(X) Apply trees in the forest to X, return leaf indices.
decision_path(X) Return the decision path in the forest
fit(X, y[, sample_weight]) Build a forest of trees from the training set (X, y).
get_params([deep]) Get parameters for this estimator.
predict(X) Predict class for X.
predict_log_proba(X) Predict class log-probabilities for X.
predict_proba(X) Predict class probabilities for X.
score(X, y[, sample_weight]) Returns the mean accuracy on the given test data and labels.
set_params(**params) Set the parameters of this estimator.
到此,关于“sklearn随机森林的参数有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。