赞
踩
- # -*- 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)

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