##Adaboost-分类
from sklearn.ensemble import AdaBoostClassifier
from sklearn.datasets import make_classification
#1.导入数据
#data = pd.read_csv(’’)
#2.数据预处理
#略,最终生成x_train,y_train,x_test
#导入sklearn的数据集
x_train, y_train = make_classification(n_samples=1000, n_features=4, n_informative=2, n_redundant=0, random_state=0, shuffle=False)
#3.模型训练
clf = AdaBoostClassifier(n_estimators=100, random_state=0)
clf.fit(x_train, y_train)
#4.模型预测
#特征重要性
print(‘feature_importances:’, clf.feature_importances_)
#构造数据
x_test = [[0, 0, 0, 0], [2, 6, 4, 4]]
y_predict = clf.predict(x_test)
print(y_predict)
#参数列表与调参方法
AdaBoostClassifier(base_estimator=None, n_estimators=50, learning_rate=1.0, algorithm=’SAMME.R’, random_state=None)
#base_estimator : object, optional (default=None)
个体学习器。需要支持样本加权,以及合适的 classes_和n_classes_属性。如果为None,则为DecisionTreeClassifier(max_depth=1)
#n_estimators : integer, optional (default=50)
提升终止的最大估计数。在完美契合的情况下,学习过程提前停止。
#learning_rate : float, optional (default=1.)
学习率会缩小每个回归量的贡献,在learning_rate和n_estimators 之间需要权衡
#algorithm : {‘SAMME’, ‘SAMME.R’}, optional (default=’SAMME.R’)
如果’SAMME.R’则使用SAMME.R真正的增强算法。 base_estimator必须支持类概率的计算。
如果’SAMME’则使用SAMME离散增强算法。
SAMME.R算法通常比SAMME快收敛,通过较少的增强迭代实现较低的测试误差。
#random_state : int, RandomState instance or None, optional (default=None)
如果是int,则random_state是随机数生成器使用的种子; 如果是RandomState实例,则random_state是随机数生成器;
如果为None,则随机数生成器是由np.random使用的RandomState实例。