本文主要是介绍oob(out-of-bag)和关于bagging的更多讨论,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
不用 train_test_split
#%% 使用oobfrom sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import BaggingClassifierbagging_clf = BaggingClassifier(DecisionTreeClassifier(),n_estimators=500,max_samples=100, # 集成500个决策树这样的子模型,每个子模型要看100个样本数bootstrap=True,oob_score=True) # bootstrap=True,放回取样 oob_score=True,记录哪些被取到
bagging_clf.fit(X,y)bagging_clf.oob_score_
结果:0.918
n_jobs=-1,使用所有内核并行操作,观察运行时间
%%time
bagging_clf = BaggingClassifier(DecisionTreeClassifier(),n_estimators=500,max_samples=100, # 集成500个决策树这样的子模型,每个子模型要看100个样本数bootstrap=True,oob_score=True) # 选择 True ,放回取样
bagging_clf.fit(X,y)
结果:Wall time: 914 ms
#%% n_jobs
%%time
bagging_clf = BaggingClassifier(DecisionTreeClassifier(),n_estimators=500,max_samples=100, # 集成500个决策树这样的子模型,每个子模型要看100个样本数bootstrap=True,oob_score=True, # 选择 True ,放回取样n_jobs=-1)
bagging_clf.fit(X,y)
结果:Wall time: 527 ms
针对特征进行随机采样
random_subspaces_clf = BaggingClassifier(DecisionTreeClassifier(),n_estimators=500,max_samples=500, bootstrap=True,oob_score=True,n_jobs=-1,max_features=1,bootstrap_features=True) # 取一个特征, 选择 True ,放回取样
random_subspaces_clf.fit(X,y)
random_subspaces_clf.oob_score_
结果:0.83
既针对样本,又针对特征进行随机采样
random_patches_clf = BaggingClassifier(DecisionTreeClassifier(),n_estimators=500,max_samples=100, # 集成500个决策树这样的子模型,每个子模型要看100个样本数bootstrap=True,oob_score=True,n_jobs=-1,max_features=1,bootstrap_features=True) # 取一个特征, 选择 True ,放回取样
random_patches_clf.fit(X,y)
random_patches_clf.oob_score_
结果:0.856
这篇关于oob(out-of-bag)和关于bagging的更多讨论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!