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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發(fā)布時間:2025/4/16 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python-ML】SKlearn库集成学习器Bagging 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*- ''' Created on 2018年1月19日@author: Jason.F @summary: Bagging,通過bootstrap樣本構(gòu)建集成分類器,樣本有放回抽樣。降低模型方差,防止過擬合。 ''' 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 BaggingClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score import matplotlib.pyplot as plt#導入數(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兩個特征 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訓練 tree=DecisionTreeClassifier(criterion='entropy',max_depth=None)#構(gòu)建基學習器 bag=BaggingClassifier(base_estimator=tree,n_estimators=500,max_samples=1.0,max_features=1.0,bootstrap=True,bootstrap_features=False,n_jobs=1,random_state=1) #評分,比較baggin集成器和單顆未剪枝決策樹的性能差異 #單顆樹評估 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))#未剪枝,過擬合 #集成器評估 bag=bag.fit(X_train,y_train) y_train_pred=bag.predict(X_train) y_test_pred=bag.predict(X_test) bag_train=accuracy_score(y_train, y_train_pred) bag_test=accuracy_score(y_test, y_test_pred) print ('Bagging train/test accuracies %.3f/%.3f'%(bag_train,bag_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,bag],['Decision Tree','Bagging']):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.854 Bagging train/test accuracies 1.000/0.896

總結(jié)

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

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