集成学习模型的方式大致为四个:bagging 、 boosting 、 voting 、 stacking.
步骤:
最著名:AdaBoosst(adaptive boosting)算法
类
class sklearn.ensemble.AdaBoostClassifier(base_estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='SAMME.R', random_state=None
属性
属性 | 类型 | 解释 |
---|---|---|
base_estimator_ | estimator | 从中生成集合的基估计量。 |
estimators_ | list of classifiers | 拟合子估计量的集合。 |
classes_ | ndarray of shape (n_classes,) | 类标签。。 |
n_classes_ | int | 类的数量。 |
estimator_weights_ | ndarray of floats | 增强集合中每个估计器的权重。 |
estimator_errors_ | ndarray of floats | 增强集合中每个估计器的分类误差。 |
feature_importances_ | ndarray of shape (n_features,) | 基于杂质的特征非常重要。 |
方法
decision_function(X) | 计算X的决策函数。 |
---|---|
fit(X, y[, sample_weight]) | 从训练集(X,y)构建一个增强的分类器。 |
get_params([deep]) | 获取此估计器的参数。 |
predict(X) | 预测X的类。 |
predict_log_proba(X) | 预测X的类对数概率。 |
predict_proba(X) | 预测X的类概率。 |
score(X, y[, sample_weight]) | 返回给定测试数据和标签的平均精度。 |
set_params(**params) | 设置此估计器的参数。 |
staged_decision_function(X) | 计算每个boosting迭代X的决策函数。 |
staged_predict(X) | 返回X的阶段性预测。 |
staged_predict_proba(X) | 预测X的类概率。 |
staged_score(X, y[, sample_weight]) | 返回X,y的阶段分数。 |
def iris_of_AdaBoostClassifier():
myutil = util()
X,y = datasets.load_iris().data,datasets.load_iris().target
X1 = datasets.load_iris().data[:,:2]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
title = "AdaBoostClassifier鸢尾花数据"
clf = AdaBoostClassifier(n_estimators=50,random_state=11)
clf.fit(X_train, y_train)
myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
myutil.plot_learning_curve(AdaBoostClassifier(n_estimators=50,random_state=11),X,y,title)
myutil.show_pic(title)
clf = AdaBoostClassifier(n_estimators=50,random_state=11).fit(X1,y)
myutil.draw_scatter_for_clf(X1,y,clf,title)
输出
AdaBoostClassifier鸢尾花数据:
96.67%
AdaBoostClassifier鸢尾花数据:
93.33%
def wine_of_AdaBoostClassifier():
myutil = util()
X,y = datasets.load_wine().data,datasets.load_wine().target
X1 = datasets.load_wine().data[:,:2]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
title = "AdaBoostClassifier红酒数据"
clf = AdaBoostClassifier(n_estimators=50,random_state=11)
clf.fit(X_train, y_train)
myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
myutil.plot_learning_curve(AdaBoostClassifier(n_estimators=50,random_state=11),X,y,title)
myutil.show_pic(title)
clf = AdaBoostClassifier(n_estimators=50,random_state=11).fit(X1,y)
myutil.draw_scatter_for_clf(X1,y,clf,title)
输出
AdaBoostClassifier红酒数据:
96.48%
AdaBoostClassifier红酒数据:
97.22%
def breast_cancer_of_AdaBoostClassifier():
myutil = util()
X,y = datasets.load_breast_cancer().data,datasets.load_breast_cancer().target
X1 = datasets.load_breast_cancer().data[:,:2]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
title = "AdaBoostClassifier乳腺癌数据"
clf = AdaBoostClassifier(n_estimators=50,random_state=11)
clf.fit(X_train, y_train)
myutil.print_scores(clf,X_train,y_train,X_test,y_test,title)
myutil.plot_learning_curve(AdaBoostClassifier(n_estimators=50,random_state=11),X,y,title)
myutil.show_pic(title)
clf = AdaBoostClassifier(n_estimators=50,random_state=11).fit(X1,y)
myutil.draw_scatter_for_clf(X1,y,clf,title)
输出
AdaBoostClassifier乳腺癌数据:
100.00%
AdaBoostClassifier乳腺癌数据:
93.86%