赞
踩
随机森林是一种集成学习算法,通过多个分类方法建模选择出最好的模型方法。
集成学习算法:综合多个评估器(estimator)的建模结果,汇总后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现。
常见的集成学习算法包含随机森林、梯度提升树(GBDT),Xgboost。
Bagging:建立多个模型,相互独立地预测,对于预测结果进行平均计算或者多数表决原则来决定集成评估器(ensemble estimator)的结果。典型代表是随机森林。
Boosting:首先用一个模型进行预测,然后对于预测结果错误的样本,在下一个预测模型中会赋予更高的权重去进行预测。核心思想是将多个评估效果弱的模型,不断强化形成一个强大的模型。代表模型又Adaboost和梯度提升树。
类 | 功能 |
ensemble.AdaBoostClassifier | AdaBoost分类 |
ensemble.AdaBoostRegressor | AdaBoost回归 |
ensemble.BaggingClassifier | 装袋分类器 |
ensemble.BaggingRegressor | 装袋回归器 |
ensemble.ExtraTreesClassifier | Extra-trees分类 |
ensemble.ExtraTreesRegressor | Extra-trees回归 |
ensemble.GradientBoostingClassifier | 梯度提升分类 |
ensemble.GradientBoostingRegressor | 梯度提升回归 |
ensemble.IsolationForest | 隔离森林 |
ensemble.RandomForestClassifier | 随机森林内分类 |
ensemble.RandomForestRegressor | 随机森林回归 |
ensemble.RandomForestEmbedding | 完全随机树集成 |
ensemble.VotingForestClassifier | 用于不适合估算器的软投票/多数规则分类器 |
1. 实例化,建立评估模型对象
2. 通过模型接口训练模型
3. 通过模型接口提取需要的信息
- from sklearn.ensemble import RandomForestClassifier
-
- rfc = RandomForestClassifier
- rfc = rfc.fit(X_train, y_train)
- result = rfc.score(x_test,y_test)
class.sklearn.ensemble.RandomForestClassifier(n_estinators=‘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=None,random_state=None,verbose=0,warm_start=False,class_weight=None)
绝大多数和决策树(Decision Tree)相同。
参数 | |
n_estimators | 森林里树的数量,通常数量越大,效果越好,但是计算时间也会随之增加。 当树的数量超过一个临界值之后,算法的效果并不会很显著地变好。 |
max_features | 分割节点时考虑的特征的随机子集的大小。 这个值越低,方差减小得越多,但是偏差的增大也越多。 根据经验,回归问题中使用 |
max_depth min_samples_split | max_depth = None 和 min_samples_split = 2 结合通常会有不错的效果(即生成完全的树) |
bootstrap | 在随机森林中,默认使用自助采样法(bootstrap = True ), 然而 extra-trees 的默认策略是使用整个数据集(bootstrap = False )。 当使用自助采样法方法抽样时,泛化精度是可以通过剩余的或者袋外的样本来估算的,设置 oob_score = True 即可实现。 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。