sklearn.ensemble.RandomForestClassifier随机森林rf参数详细解读
2018-03-13 16:01
537 查看
导入模块:
主要参数:
随机森林中树的个数,即学习器的个数。
max_features : (default=”auto”)
划分叶子节点,选择的最大特征数目
n_features为全部的特征数
If “auto”, then max_features=sqrt(n_features).
•If “sqrt”, then max_features=sqrt(n_features) (same as “auto”).
•If “log2”, then max_features=log2(n_features).
•If None, then max_features=n_features.和传统决策树叶子划分的情况一致
max_depth : 整型,可选(default=None)
树的最大深度,如果选择default=None,树就一致扩展,直到所有的叶子节点都是同一类样本,或者达到最小样本划分(min_samples_split)的数目。
min_samples_split : (default=2)
最小样本划分的数目,就是样本的数目少于等于这个值,就不能继续划分当前节点了
min_samples_leaf : int, float, optional (default=1)
叶子节点最少样本数,如果某叶子节点数目这个值,就会和兄弟节点一起被剪枝。
min_weight_fraction_leaf:叶子节点最小的样本权重和
max_leaf_nodes: (default=None)
最大叶子节点数,默认是”None”,即不限制最大的叶子节点数
min_impurity_split:节点划分的最小不纯度,是结束树增长的一个阈值,如果不纯度超过这个阈值,那么该节点就会继续划分,否则不划分,成为一个叶子节点。
min_impurity_decrease : float, optional (default=0.)
最小不纯度减少的阈值,如果对该节点进行划分,使得不纯度的减少大于等于这个值,那么该节点就会划分,否则,不划分。
bootstrap : boolean, optional (default=True)
自助采样,又放回的采样,大量采样的结果就是初始样本的63.2%作为训练集。默认选择自助采样法。
oob_score : bool (default=False)
out-of-bag estimate,包外估计;是否选用包外样本(即bootstrap采样剩下的36.8%的样本)作为验证集,对训练结果进行验证,默认不采用。
n_jobs : integer, optional (default=1)
并行使用的进程数,默认1个,如果设置为-1,该值为总的核数。
random_state :(default=None)
随机状态,默认由np.numpy生成
verbose:int, optional (default=0)
显示输出的一些参数,默认不输出。
from sklearn.ensemble import RandomForestClassifier
主要参数:
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, verbose=0, warm_start=False, class_weight=None)
常用参数解读
n_estimators : integer, optional (default=10)随机森林中树的个数,即学习器的个数。
max_features : (default=”auto”)
划分叶子节点,选择的最大特征数目
n_features为全部的特征数
If “auto”, then max_features=sqrt(n_features).
•If “sqrt”, then max_features=sqrt(n_features) (same as “auto”).
•If “log2”, then max_features=log2(n_features).
•If None, then max_features=n_features.和传统决策树叶子划分的情况一致
max_depth : 整型,可选(default=None)
树的最大深度,如果选择default=None,树就一致扩展,直到所有的叶子节点都是同一类样本,或者达到最小样本划分(min_samples_split)的数目。
min_samples_split : (default=2)
最小样本划分的数目,就是样本的数目少于等于这个值,就不能继续划分当前节点了
min_samples_leaf : int, float, optional (default=1)
叶子节点最少样本数,如果某叶子节点数目这个值,就会和兄弟节点一起被剪枝。
min_weight_fraction_leaf:叶子节点最小的样本权重和
max_leaf_nodes: (default=None)
最大叶子节点数,默认是”None”,即不限制最大的叶子节点数
min_impurity_split:节点划分的最小不纯度,是结束树增长的一个阈值,如果不纯度超过这个阈值,那么该节点就会继续划分,否则不划分,成为一个叶子节点。
min_impurity_decrease : float, optional (default=0.)
最小不纯度减少的阈值,如果对该节点进行划分,使得不纯度的减少大于等于这个值,那么该节点就会划分,否则,不划分。
bootstrap : boolean, optional (default=True)
自助采样,又放回的采样,大量采样的结果就是初始样本的63.2%作为训练集。默认选择自助采样法。
oob_score : bool (default=False)
out-of-bag estimate,包外估计;是否选用包外样本(即bootstrap采样剩下的36.8%的样本)作为验证集,对训练结果进行验证,默认不采用。
n_jobs : integer, optional (default=1)
并行使用的进程数,默认1个,如果设置为-1,该值为总的核数。
random_state :(default=None)
随机状态,默认由np.numpy生成
verbose:int, optional (default=0)
显示输出的一些参数,默认不输出。
RandomForestClassifier的使用
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) #可以输出4个特征的特征重要性 print(clf.feature_importances_) #结果:[ 0.17287856 0.80608704 0.01884792 0.00218648] # 预测 print(clf.predict([[0, 0, 0, 0]]))
使用GridSearchCV交叉验证
from sklearn.model_selection import GridSearchCV n_estimators = range(100,500,50) hyper = {'n_estimators':n_estimators} gd = GridSearchCV(estimator=RandomForestClassifier(random_state=0),param_grid=hyper,verbose=True) #estimator,param_grid, verbose 是GridSearchCV()的参数,param_grid=hyper负责把先前设置的参数传给RandomForestClassifier() gd.fit(X,y) print(gd.best_score_)#输出最高的准确率 print(gd.best_estimator_)#输出最好的学习器,包括一系列参数 #得到最优参数后,再重新训练一次
相关文章推荐
- CSS 详细解读定位属性 position 以及参数
- sklearn.ensemble之RandomForestClassifier源码解读(二)
- WebRTC内置debug工具,详细参数解读
- CSS 详细解读定位属性 position 以及参数
- WebRTC内置debug工具,详细参数解读
- mysql之 binlog维护详细解析(开启、binlog相关参数作用、mysqlbinlog解读、binlog删除)
- mysql之 binlog维护详细解析(开启、binlog相关参数作用、mysqlbinlog解读、binlog删除)
- Css 详细解读定位属性 position 以及参数
- sklearn.ensemble之RandomForestClassifier源码解读(一)
- 关于main函数参数(int argc,char *argv[])的详细解读
- CSS 详细解读定位属性 position 以及参数
- sklearn.ensemble.RandomForest 参数详解
- 关于esxtop命令下%RUN、%RDY和%MLMTD三个参数的详细解读
- MemCache超详细解读
- 计算机网络之物理层详细解读(一)
- setsockopt()用法(参数详细说明)(转)
- fmt:formatDate 参数详细
- 详细解读JVM中的对象生命周期(1)
- Caffe 中 BN(BatchNorm ) 层的参数均值、方差和滑动系数解读
- H.264(层次结构,NAL,SPS) 详细重要参数