集成学习-随机森林

本文介绍了随机森林和Extra-Trees两种集成学习方法,并通过示例展示了如何使用sklearn库进行分类任务。随机森林通过随机选择特征和数据集来提高模型的泛化能力,而Extra-Trees则进一步增加了随机性,提高了对噪声数据的容忍度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、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_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值