日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【Python-ML】SKlearn库集成学习器Boosting

發(fā)布時(shí)間:2025/4/16 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python-ML】SKlearn库集成学习器Boosting 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
# -*- coding: utf-8 -*- ''' Created on 2018年1月19日@author: Jason.F @summary: Boosting,無(wú)放回抽樣,串行訓(xùn)練基學(xué)習(xí)器,用整個(gè)訓(xùn)練集來(lái)訓(xùn)練弱學(xué)習(xí)機(jī),訓(xùn)練樣本在每次迭代中都會(huì)重新賦予一個(gè)權(quán)重,在上一弱學(xué)習(xí)機(jī)錯(cuò)誤的基礎(chǔ)上進(jìn)行學(xué)習(xí)進(jìn)而構(gòu)建一個(gè)更強(qiáng)大的分類器。 ''' import pandas as pd import numpy as np from sklearn.preprocessing import LabelEncoder from sklearn.cross_validation import train_test_split from sklearn.ensemble import AdaBoostClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt#導(dǎo)入數(shù)據(jù)和數(shù)據(jù)處理 df_wine = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data',header=None) df_wine.columns=['Class label','Alcohol','Malic acid','Ash','Alcalinity of ash','Magnesium','Total phenols','Flavanoids','Nonflavanoid phenols','Proanthocyanins','Color intensity','Hue','OD280/OD315 of diluted wines','Proline'] print ('class labels:',np.unique(df_wine['Class label'])) df_wine=df_wine[df_wine['Class label']!=1]#選擇2和3類別 y=df_wine['Class label'].values X=df_wine[['Alcohol','Hue']].values #選擇Alcohol和 Hue兩個(gè)特征 le=LabelEncoder() y=le.fit_transform(y) X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.40,random_state=1) #引用BaggingClassifier訓(xùn)練 tree=DecisionTreeClassifier(criterion='entropy',max_depth=None)#構(gòu)建基學(xué)習(xí)器 ada=AdaBoostClassifier(base_estimator=tree,n_estimators=500,learning_rate=0.1,random_state=0) #評(píng)分,比較baggin集成器和單顆未剪枝決策樹(shù)的性能差異 #單顆樹(shù)評(píng)估 tree=tree.fit(X_train,y_train) y_train_pred=tree.predict(X_train) y_test_pred=tree.predict(X_test) tree_train=accuracy_score(y_train, y_train_pred) tree_test=accuracy_score(y_test, y_test_pred) print ('Decision tree train/test accuracies %.3f/%.3f'%(tree_train,tree_test))#未剪枝,過(guò)擬合 #集成器評(píng)估 ada=ada.fit(X_train,y_train) y_train_pred=ada.predict(X_train) y_test_pred=ada.predict(X_test) ada_train=accuracy_score(y_train, y_train_pred) ada_test=accuracy_score(y_test, y_test_pred) print ('Adaboost train/test accuracies %.3f/%.3f'%(ada_train,ada_test)) #可視化決策區(qū)域 x_min = X_train[:,0].min()-1 x_max = X_train[:,0].max()+1 y_min = X_train[:,1].min()-1 y_max = X_train[:,1].max()+1 xx,yy =np.meshgrid(np.arange(x_min,x_max,0.1),np.arange(y_min,y_max,0.1)) f,axarr= plt.subplots(nrows=1,ncols=2,sharex='col',sharey='row',figsize=(8,3)) for idx,clf,tt in zip([0,1],[tree,ada],['Decision Tree','Adaboost']):clf.fit(X_train,y_train)Z=clf.predict(np.c_[xx.ravel(),yy.ravel()])Z=Z.reshape(xx.shape)axarr[idx].contourf(xx,yy,Z,alpha=0.3)axarr[idx].scatter(X_train[y_train==0,0],X_train[y_train==0,1],c='blue',marker='^')axarr[idx].scatter(X_train[y_train==1,0],X_train[y_train==1,1],c='red',marker='o')axarr[idx].set_title(tt) axarr[0].set_ylabel('Alcohol',fontsize=12) plt.text(10.2,-1.2,s='Hue',ha='center',va='center',fontsize=12) plt.show()

結(jié)果:

('class labels:', array([1, 2, 3], dtype=int64)) Decision tree train/test accuracies 1.000/0.833 Adaboost train/test accuracies 1.000/0.833

總結(jié)

以上是生活随笔為你收集整理的【Python-ML】SKlearn库集成学习器Boosting的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。