分类BaggingClassifier
from sklearn.datasets import load_iris
from sklearn.ensemble import BaggingClassifier
#,max_features=0.5
iris=load_iris()
bagging=BaggingClassifier(n_estimators=20,max_samples=0.5,oob_score=True)
bagging.fit(iris.data,iris.target)
# 每个分类器抽取的样本号
bagging.estimators_samples_
# 每个分类器抽取的特征
bagging.estimators_features_
# 查看每个分类器
bagging.estimators_
# 每个基本分类器都可以被单独使用
tree1=bagging.estimators_[0].fit(iris.data,iris.target)
tree1.predict(iris.data)
# 查看袋外oob测试结果
bagging.oob_score_
# 估计各数据点属于每个类别的决定函数值(取几个值中最大的)
bagging.oob_decision_function_
# 集成模型用于预测
bagging.predict(iris.data)
回归BaggingRegressor
# 导入波士顿房价数据集
from sklearn.datasets import load_boston
boston=load_boston()
#导入bagging回归
from sklearn.ensemble import BaggingRegressor
bagging=BaggingRegressor()
from sklearn.linear_model import LinearRegression
#实例化
bagging_reg=BaggingRegressor(LinearRegression(),n_estimators=20,max_samples=0.5,max_features=0.5,oob_score=True)
bagging_reg.fit(boston.data,boston.target)
bagging_reg.oob_score_
print(len(bagging_reg.oob_prediction_),bagging_reg.oob_prediction_)# 样本数量,预测值
bagging_reg.predict(boston.data)# 集成模型用于预测
随机森林分类
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
iris=load_iris()
rfc=RandomForestClassifier(n_estimators=300,oob_score=True)
rfc.fit(iris.data,iris.target)
rfc.estimators_#基分类器
rfc.estimators_[0].predict(iris.data)# 利用第一个基分类器进行预测
rfc.estimators_[0].feature_importances_# 由第一个分类器计算的特征重要性
#可以看见第一个基分类器的结果与随机森铃的结果类似,都是前两个小,后两个大
rfc.feature_importances_# 查看由随机森铃模型计算的特征重要性,可以用来降维,因为前面两个值特别小
rfc.oob_score_# 袋外oob测试结果
rfc.predict(iris.data)
rfc.oob_decision_function_# 查随机森林模型对各数据点的决定函数值
AdaBoostClassifier
from sklearn.datasets import load_iris
from sklearn.ensemble import AdaBoostClassifier
boston=load_iris()
adac=AdaBoostClassifier()
adac.fit(boston.data,boston.target)
adac.estimators_
adac.estimator_errors_# 估计误差,可以看出误差是逐渐递减的
adac.classes_# 样本标签
adac.n_classes_# 查看数据类别数
adac.estimator_weights_# 查看模型权重
adac.feature_importances_
adac.predict(iris.data)
for item in adac.staged_predict_proba(iris.data):#输出adaboost每一次迭代对数据点的预测概率值
print(item)