python|AdaBoost(AdaBoostClassifier)

# -*- coding: utf-8 -*-
"""
Created on Thu Nov  7 15:49:21 2019

@author: weiping
"""

from sklearn.ensemble import AdaBoostClassifier as abc
from sklearn.ensemble import AdaBoostRegressor as abr
import pandas as pd
import numpy as np
import sklearn.datasets as skdata
import matplotlib.pyplot as plt
from sklearn.model_selection  import train_test_split
from sklearn import metrics
'''分类'''
data_x,data_y = skdata.load_iris().data, skdata.load_iris().target

df = pd.DataFrame(data_x,columns = list('abcd'))
df['f'] = data_y
x_tr,x_te,y_tr,y_te = train_test_split(df[list('abcd')],df['f'],train_size = 0.7,random_state =22)

rf = abc()
rf.fit(x_tr,y_tr)
rf_p = rf.predict(x_te)
f_importances = rf.feature_importances_ #特征的重要性
imp = pd.Series(f_importances,index = list('abcd')) #画出特征重要程度的条形图
plt.barh(imp.index,imp.values)
metrics.confusion_matrix(y_te,rf_p)

'''回归'''
d_x ,d_y = skdata.load_boston().data,skdata.load_boston().target

x_tr,x_te,y_tr,y_te = train_test_split(d_x,d_y,train_size = 0.7,random_state = 22)

rfr = abr()
rfr.fit(x_tr,y_tr)
rf_p = rfr.predict(x_te)
imp = pd.Series(rfr.feature_importances_,index = list('abcdefghijklm'))
plt.barh(imp.index,imp.values)
metrics.r2_score(rf_p,y_te)

参数(https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoostClassifier

base_estimator基分类器,默认是决策树,在该分类器基础上进行boosting,理论上可以是任意一个分类器,但是如果是其他分类器时需要指明样本权重。
n_estimators基分类器提升(循环)次数,默认是50次,这个值过大,模型容易过拟合;值过小,模型容易欠拟合。
learning_rate学习率,表示梯度收敛速度,默认为1,如果过大,容易错过最优值,如果过小,则收敛速度会很慢;该值需要和n_estimators进行一个权衡,当分类器迭代次数较少时,学习率可以小一些,当迭代次数较多时,学习率可以适当放大。
algorithmboosting算法,也就是模型提升准则,有两种方式SAMME和SAMME.R两种,默认是SAMME.R,两者的区别主要是弱学习器权重的度量,前者是对样本集预测错误的概率进行划分的,后者是对样本集的预测错误的比例,即错分率进行划分的,默认是用的SAMME.R。
random_state随机种子设置。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值