集成学习-随机森林

 

一、Random Forest  

    随机森林sklearn中有封装好的类库,不仅有对特征和数据集的随机选择,在节点划分上,在随机的特征子集上寻找最优划分特征(这也是开源库比自己实现的效果好的原因,在细微处都是有优化的,同时,看别人写的源码和自己实现都是获益匪浅)。

     使用实例:

import numpy as np
import matplotlib.pyplot as plt

from sklearn import datasets

X, y = datasets.make_moons(n_samples=500, noise=0.3, random_state=42)

plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
plt.show()

from sklearn.ensemble import RandomForestClassifier
#n_estimators生产多少个分类器
rf_clf = RandomForestClassifier(n_estimators=500,random_state=666,oob_score=True,n_jobs=-1)

rf_clf.fit(X,y)

 这个fit的模型参数是这样:

RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
            max_depth=None, max_features='auto', max_leaf_nodes=None,
            min_impurity_split=1e-07, min_samples_leaf=1,
            min_samples_split=2, min_weight_fraction_leaf=0.0,
            n_estimators=500, n_jobs=-1, oob_score=True, random_state=666,
            verbose=0, warm_start=False)

这里的参数是由决策树和Bagging共同组成的

然后我们跑一下结果:

rf_clf.oob_score_

二、Extra-Trees

     也就是Extra-Random-Trees,极其随机的森林,和随机森林的区别在节点的划分上,使用随机的阈值和随机的特征,这种策略使得模型更加随机,抑制了过拟合,对异常点的容忍度变大,但是增大了模型的偏差(随机森林降低的模型的方差)

使用实例:

这里仍然使用之前的数据集

from sklearn.ensemble import ExtraTreesClassifier

et_clf = ExtraTreesClassifier(n_estimators=500,bootstrap=True,oob_score=True,n_jobs=-1,random_state=666)

et_clf.fit(X,y)

et_clf.oob_score_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值