前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速入门Python机器学习(22)

快速入门Python机器学习(22)

作者头像
顾翔
发布2022-09-23 20:04:52
2800
发布2022-09-23 20:04:52
举报

10.2 AdaBost(Adaptive Boosting)

10.2.1 概念

集成学习模型的方式大致为四个:bagging 、 boosting 、 voting 、 stacking.

步骤:

  1. 初始化,对m个训练样本的数据集(不同颜色代表不同数据集),给每个样本分配初始权重(圆点越大,权重越大)。
  2. 使用带权重的数据集训练处一个弱学习器。
  3. 对弱学习器训练的错误样本增加权重。
  4. 新的带权重的数据集训练处下一个弱学习器。
  5. 如此重复,直到训练处的弱学习器达到事先指定的N,最终将N个弱学习器加权融合。

10.2.2 AdaBoosst(adaptive boosting)

最著名:AdaBoosst(adaptive boosting)算法

AdaBoostClassifier
类参数、属性和方法

代码语言:javascript
复制
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的阶段分数。

鸢尾花AdaBoostClassifier分类算法
代码语言:javascript
复制
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)

输出

代码语言:javascript
复制
AdaBoostClassifier鸢尾花数据:
96.67%
AdaBoostClassifier鸢尾花数据:
93.33%
红酒AdaBoostClassifier分类算法

def wine_of_AdaBoostClassifier():

代码语言:javascript
复制
       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)

输出

代码语言:javascript
复制
AdaBoostClassifier红酒数据:
96.48%
AdaBoostClassifier红酒数据:
97.22%
乳腺癌AdaBoostClassifier分类算法
代码语言:javascript
复制
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)

输出

代码语言:javascript
复制
AdaBoostClassifier乳腺癌数据:
100.00%
AdaBoostClassifier乳腺癌数据:
93.86%
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 10.2 AdaBost(Adaptive Boosting)
    • 10.2.1 概念
      • 10.2.2 AdaBoosst(adaptive boosting)
        • AdaBoostClassifier
        • 类参数、属性和方法
        • 鸢尾花AdaBoostClassifier分类算法
        • 红酒AdaBoostClassifier分类算法
        • 乳腺癌AdaBoostClassifier分类算法
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档