3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
在Bagging單元中,我們分享到樣本可以透過Bootstrap的方式重複抽取後,進行不同弱學習器的建模。然而,在python執行中,細心的讀者會發現到,當我們採用sklearn套件裡面的Bagging方法時,這些弱學習器雖然可以自行選擇,但只能選一種,沒辦法交錯使用。比方說我們選擇了SVM當我們的弱學習器,那所有的弱學習器都是SVM,沒有辦法有些用SVM, 有些用決策樹或貝氏分類器等等。因此,今天我們要來分享,如何用Voting將這些”不同類型”的弱學習器結合在一起! Python 運行 想要結合不同類型的弱學習器時,我們可以透過sklear.ensemble套件裡所提供的voting方法來運行。其中VotingClassifier適合用在分類問題,VotingRegressor則適合用在連續型資料。 引入套件及資料 from sklearn.ensemble import VotingClassifierfrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitimport matplotlib.pyplot as plt%matplotlib inline 在這邊,我們一樣採用sklearn所提供的鳶尾花資料集來演示,因鳶尾花屬於分類問題,故我們這邊引入VotingClassifier。大家手邊有資料的話也可以採用自己的資料進行,如果是連續型問題,可以改為引入VotingRegressor。下載好資料後,我們將樣本區分為訓練集以及測試集。 iris=datasets.load_iris()X=iris.datay=iris.targetX_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.3,random_state=0) Voting 進行Voting主要有三個步驟,第一步引入我們想要使用的子模型套件,第二步將這些模型存成一個list,最後只要依照我們所熟悉的建模方式進行就完成了!詳細過程歡迎參考影片。 引入子模型套件:from sklearn.svm import SVCfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.naive_bayes import GaussianNB 將子模型存成list:model_list=[]m1=SVC()model_list.append(('svm',m1))m2=DecisionTreeClassifier()model_list.append(('DT',m2))m3=GaussianNB()model_list.append(('NB',m3))vc=VotingClassifier(model_list) 建模:vc.fit(X_train,y_train) 預測:vc.predict(X_test) 準確度評比:vc.score(X_test,y_test) 延伸閱讀 Ensemble Learning: 三個臭皮匠,勝過一個諸葛亮! Bagging! Ensemble Learning: 一步步的修正, Boosting! 程式檔案,歡迎下載Github

本文由pyecontechcom提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦