




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)轉(zhuǎn)換投票法BaggingAdaBoost性能評價參考書目《機(jī)器學(xué)習(xí)技術(shù)任務(wù)驅(qū)動式教程》基于集成學(xué)習(xí)的分類預(yù)測模塊9機(jī)器學(xué)習(xí)技術(shù)目錄投票法融合多分類器Bagging提升分類器精度AdaBoost提升分類器精度小結(jié)習(xí)題九基于集成學(xué)習(xí)的分類預(yù)測模塊9機(jī)器學(xué)習(xí)技術(shù)癌癥是世界上女性最常見的癌癥。它占所有癌癥病例的25%,僅2015年就影響了210多萬人。當(dāng)乳房中的細(xì)胞開始生長失控時,它就開始了。這些細(xì)胞通常形成腫瘤,可以通過X射線看到,或者在乳房區(qū)域感覺到腫塊。對其檢測的關(guān)鍵挑戰(zhàn)是如何將腫瘤分為惡性(癌性)或良性(非癌性)。要求使用投票法融合多個分類器提升分類精度。詳細(xì)的字段描述見第7章。1.1任務(wù)描述1.投票法融合多分類器基于breast-cancer-kaggle.csv,先使用K-最近鄰、邏輯回歸、決策樹、貝葉斯、支持向量機(jī)單分類器建立模型,預(yù)測病人腫瘤是良性還是惡性,然后使用投票方法綜合單分類器模型提升預(yù)測精度。任務(wù)目標(biāo)1.2
任務(wù)分解import方式引入依賴的模塊文件讀入DataFrame,抽樣檢查樣本,檢查屬性類型轉(zhuǎn)換到(0,1)區(qū)間的正態(tài)分布依賴庫導(dǎo)入數(shù)據(jù)觀察數(shù)據(jù)轉(zhuǎn)換從探查數(shù)據(jù)內(nèi)容開始,經(jīng)過數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)集分離,使用單分類器建立模型評估精度,然后采用投票方法融合多個模型預(yù)測腫瘤類別。1.投票法融合多分類器1.2
任務(wù)分解構(gòu)建單分類器模型在訓(xùn)練集上訓(xùn)練,在測試集上評估精度融合多個單分類器模型預(yù)測標(biāo)簽單分類器訓(xùn)練投票法模型訓(xùn)練接上1.投票法融合多分類器1.3
任務(wù)實施1.3.1依賴庫導(dǎo)入步驟1:定義2級標(biāo)題。##<fontcolor="black">依賴庫導(dǎo)入</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟2:導(dǎo)入依賴庫。importpandasaspdimportnumpyasnpfromsklearn.svmimportSVCfromsklearnimportneighborsfromsklearn.linear_modelimportLogisticRegressionfromsklearn.treeimportDecisionTreeClassifierfromsklearn.naive_bayesimportGaussianNB1.投票法融合多分類器1.3
任務(wù)實施fromsklearn.ensembleimportVotingClassifierfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportStandardScaler,Normalizer,LabelEncoder1.投票法融合多分類器按“SHIFT+Enter”,檢查輸出無異常。接上1.3
任務(wù)實施1.3.2數(shù)據(jù)觀察文件讀入DataFrame對象后,需要觀察屬性值和類型。步驟1:定義2級標(biāo)題。##<fontcolor="black">數(shù)據(jù)觀察</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟2:把數(shù)據(jù)從文件讀入DataFrame對象。df_data=pd.read_csv("../data/breast-cancer-kaggle.csv",index_col="id")df_data.shape按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟3:檢查前5個樣本。df.head(5)按“SHIFT+Enter”,運行結(jié)果如下:diagnoisis:M(惡性),B(良性)1.投票法融合多分類器1.3
任務(wù)實施步驟4:查看每個字段的數(shù)據(jù)類型。df_()按“SHIFT+Enter”,運行結(jié)果如右圖。從結(jié)果看出,數(shù)據(jù)集共有569條樣本、31個字段。除標(biāo)簽diagnosis外,其它30個字段都是float類型,30個特征分為mean(平均值)、se(標(biāo)準(zhǔn)方差)、worst(最差)3組。標(biāo)簽diagnosis需要轉(zhuǎn)換到int。1.投票法融合多分類器1.3
任務(wù)實施1.3.3數(shù)據(jù)轉(zhuǎn)換步驟1:定義2級標(biāo)題。##<fontcolor="black">數(shù)據(jù)轉(zhuǎn)換</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟2:標(biāo)簽從文本轉(zhuǎn)換到索引型數(shù)值。le=LabelEncoder()df_data["diagnosis"]=le.fit_transform(df_data["diagnosis"])df_()按“SHIFT+Enter”,運行結(jié)果如右圖。1.投票法融合多分類器1.3
任務(wù)實施步驟3:DataFrame對象轉(zhuǎn)換到Numpy對象。X=df_data.iloc[:,1:].valuesy=df_data.iloc[:,0].valuesX.shape,y.shape按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟4:數(shù)據(jù)集分為2部分:訓(xùn)練集和測試集,測試集占30%。X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)X_train.shape,X_test.shape,y_train.shape,y_test.shape按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟5:轉(zhuǎn)換特征服從正態(tài)分布。轉(zhuǎn)換公式:scaler=StandardScaler()X_train_scaled=scaler.fit_transform(X_train)X_test_scaled=scaler.transform(X_test)X_train_scaled[:2,:]1.投票法融合多分類器
,其中x是特征值,xmean是特征平均值,xstd是特征標(biāo)準(zhǔn)偏差。1.3
任務(wù)實施按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟6:轉(zhuǎn)換特征到[-1,1]區(qū)間。轉(zhuǎn)換公式:normalizer=Normalizer()X_train_norm=normalizer.fit_transform(X_train_scaled)X_test_norm=normalizer.transform(X_test_scaled)X_train_norm[0:2,:]1.投票法融合多分類器,其中x是特征值,|x|是樣本向量大小。
1.3
任務(wù)實施按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施1.3.4單分類器訓(xùn)練嘗試使用不同的分類器,在訓(xùn)練集上訓(xùn)練模型,比較在測試集上的模型性能步驟1:定義2級標(biāo)題。##<fontcolor="black">單分類器訓(xùn)練</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟2:定義3級標(biāo)題。###<fontcolor="black">K-最近鄰</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟3:在訓(xùn)練集上訓(xùn)練K-最近鄰模型。knn_clf=neighbors.KNeighborsClassifier(n_neighbors=5)knn_clf.fit(X_train_norm,y_train)1.3
任務(wù)實施按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟4:評估K-最近鄰模型在測試集上的準(zhǔn)確率。test_score=knn_clf.score(X_test_norm,y_test)“KNN準(zhǔn)確率:{:.2f}".format(test_score*100)按“SHIFT+Enter”,運行結(jié)果如下:1.3
任務(wù)實施步驟5:定義3級標(biāo)題。###<fontcolor="black">邏輯回歸</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟6:在訓(xùn)練集上訓(xùn)練邏輯回歸模型。log_clf=LogisticRegression(random_state=0)log_clf.fit(X_train_norm,y_train)1.3
任務(wù)實施按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟7:評估邏輯回歸模型在測試集上的準(zhǔn)確率。test_score=log_clf.score(X_test_norm,y_test)"邏輯回歸準(zhǔn)確率:{:.2f}".format(test_score*100)按“SHIFT+Enter”,運行結(jié)果如下:1.3
任務(wù)實施步驟8:定義3級標(biāo)題。###<fontcolor="black">決策樹</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟9:在訓(xùn)練集上訓(xùn)練決策樹模型。dt_clf=DecisionTreeClassifier(max_depth=5,random_state=0)dt_clf.fit(X_train_norm,y_train)1.3
任務(wù)實施按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟10:評估決策樹模型在測試集上的準(zhǔn)確率。test_score=dt_clf.score(X_test_norm,y_test)"決策樹準(zhǔn)確率:{:.2f}".format(test_score*100)按“SHIFT+Enter”,運行結(jié)果如下:1.3
任務(wù)實施步驟11:定義3級標(biāo)題。###<fontcolor="black">樸素貝葉斯</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟12:在訓(xùn)練集上訓(xùn)練貝葉斯模型。nb_clf=GaussianNB()nb_clf.fit(X_train_norm,y_train)1.3
任務(wù)實施按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟13:評估貝葉斯模型在測試集上的準(zhǔn)確率。test_score=nb_clf.score(X_test_norm,y_test)"樸素貝葉斯準(zhǔn)確率:{:.2f}".format(test_score*100)按“SHIFT+Enter”,運行結(jié)果如下:1.3
任務(wù)實施步驟14:定義3級標(biāo)題。###<fontcolor="black">支持向量機(jī)</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟15:在訓(xùn)練集上訓(xùn)練支持向量機(jī)模型。svm_clf=SVC(kernel='rbf',random_state=0)svm_clf.fit(X_train_norm,y_train)1.3
任務(wù)實施按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟16:評估支持向量機(jī)模型在測試集上的準(zhǔn)確率。test_score=svm_clf.score(X_test_norm,y_test)"SVM準(zhǔn)確率:{:.2f}".format(test_score*100)按“SHIFT+Enter”,運行結(jié)果如下:1.3
任務(wù)實施1.3.5投票法模型訓(xùn)練融合多個單分類器預(yù)測結(jié)果,采用投票法決定最終標(biāo)簽步驟1:定義2級標(biāo)題。##<fontcolor="black">投票法模型訓(xùn)練</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器1.3
任務(wù)實施步驟2:定義3級標(biāo)題。###<fontcolor="black">集成5種模型</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟3:在訓(xùn)練集上訓(xùn)練集成模型(K-最近鄰+邏輯回歸+決策樹+貝葉斯+SVM)。1.3
任務(wù)實施voting_clf=VotingClassifier(estimators=[('knn_clf',neighbors.KNeighborsClassifier(n_neighbors=5)),('log_clf',LogisticRegression(random_state=0)),('dt_clf',DecisionTreeClassifier(max_depth=5,random_state=0)),('nb_clf',GaussianNB()),('svm_clf',SVC(kernel='rbf',random_state=0))],voting='hard')voting_clf.fit(X_train_norm,y_train)1.投票法融合多分類器1.3
任務(wù)實施1.投票法融合多分類器按“SHIFT+Enter”,運行結(jié)果如下:test_score=voting_clf.score(X_test_norm,y_test)"集成5種模型準(zhǔn)確率:{:.2f}".format(test_score*100)按“SHIFT+Enter”,運行結(jié)果如下:步驟4:評估測試集上的準(zhǔn)確率。1.3
任務(wù)實施步驟2:定義3級標(biāo)題。###<fontcolor="black">集成最優(yōu)模型</font>按“SHIFT+Enter”,運行結(jié)果如下:1.投票法融合多分類器步驟6:在訓(xùn)練集上訓(xùn)練2種性能接近的投票模型(邏輯回歸+SVM)。1.3
任務(wù)實施voting_clf=VotingClassifier(estimators=[('log_clf',LogisticRegression(random_state=0)),('svm_clf',SVC(kernel='rbf',random_state=0))],voting='hard')voting_clf.fit(X_train_norm,y_train)1.投票法融合多分類器按“SHIFT+Enter”,運行結(jié)果如下:1.3
任務(wù)實施1.投票法融合多分類器按“SHIFT+Enter”,運行結(jié)果如下:test_score=voting_clf.score(X_test_norm,y_test)"集成2種性能接近模型準(zhǔn)確率:{:.2f}".format(test_score*100)按“SHIFT+Enter”,運行結(jié)果如下:步驟7:評估測試集上的準(zhǔn)確率。集成學(xué)習(xí)投票法投票法是一種遵循少數(shù)服從多數(shù)原則的集成學(xué)習(xí)模型,通過多個學(xué)習(xí)器的集成降低方差,從而提高模型的魯棒性。在理想情況下,投票法的預(yù)測效果應(yīng)當(dāng)優(yōu)于任何一個基學(xué)習(xí)器的預(yù)測效果。Sklearn庫的VotingClassifier類提供了投票法接口,定義如下:集成學(xué)習(xí)投票法classsklearn.ensemble.VotingClassifier(estimators,**kargs)參數(shù)estimators:列表一組基學(xué)習(xí)器。投票法在回歸模型與分類模型上均可使用。分類投票法又可以被劃分為硬投票與軟投票:(1)硬投票:預(yù)測結(jié)果是所有投票結(jié)果最多出現(xiàn)的類。(2)軟投票:預(yù)測結(jié)果是所有投票結(jié)果中概率和最大的類。實驗所用數(shù)據(jù)集來自威斯康星大學(xué)的癌癥診斷記錄,要求建立機(jī)器學(xué)習(xí)模型,預(yù)測病人患癌的概率。詳細(xì)的字段描述見模塊6的表6-1。2.1任務(wù)描述2.Bagging提升分類器精度基于breast-cancer-uci.data,先使用高斯貝葉斯模型擬合訓(xùn)練數(shù)據(jù),預(yù)測病人腫瘤是良性還是惡性,然后使用Bagging方法提升單分類器精度。任務(wù)目標(biāo)2.2
任務(wù)分解import方式引入依賴的模塊文件讀入DataFrame,檢查索引、樣本、字段類型、空值等用平均值填充字段空值依賴庫導(dǎo)入數(shù)據(jù)觀察空值填充觀察數(shù)據(jù)后,填充缺失值,按照訓(xùn)練集和驗證集4:1比例切分?jǐn)?shù)據(jù)集,先使用高斯貝葉斯模型預(yù)測腫瘤性質(zhì),進(jìn)而采取Bagging方法提升單分類器精度。2.Bagging提升分類器精度2.2
任務(wù)分解數(shù)據(jù)轉(zhuǎn)換到Numpy對象在訓(xùn)練集上訓(xùn)練高斯貝葉斯模型,并在驗證集上評估模型精度數(shù)據(jù)轉(zhuǎn)換單分類器訓(xùn)練接上Bagging方法在訓(xùn)練集上訓(xùn)練多個高斯貝葉斯模型,預(yù)測時融合多個模型Bagging提升性能2.Bagging提升分類器精度2.3
任務(wù)實施2.3.1依賴庫導(dǎo)入步驟1:定義2級標(biāo)題。##<fontcolor="black">依賴庫導(dǎo)入</font>按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度2.3
任務(wù)實施步驟2:導(dǎo)入依賴庫。importpandasaspdimportnumpyasnpfromsklearn.model_selectionimporttrain_test_splitfromsklearn.naive_bayesimportGaussianNBfromsklearn.ensembleimportBaggingClassifier按“SHIFT+Enter”,檢查輸出無異常。2.Bagging提升分類器精度2.3
任務(wù)實施2.3.2數(shù)據(jù)觀察文件讀入DataFrame對象后,需要觀察屬性值和類型。步驟1:定義2級標(biāo)題。##<fontcolor="black">數(shù)據(jù)觀察</font>按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度2.3
任務(wù)實施步驟2:把數(shù)據(jù)從文件讀入DataFrame對象。df=pd.read_csv("../data/breast-cancer-uci.data",header=0)df.shape按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度步驟3:檢查“編號”字段的唯一性。df['編號'].nunique()2.3
任務(wù)實施按“SHIFT+Enter”,檢查輸出無異常。2.Bagging提升分類器精度從結(jié)果看出,“編號”字段值并不唯一,不能作為索引。步驟4:隨機(jī)觀察5個樣本。df.sample(5)按“SHIFT+Enter”,運行結(jié)果如下:2.3
任務(wù)實施2.Bagging提升分類器精度步驟5:查看字段數(shù)據(jù)類型。()按“SHIFT+Enter”,運行結(jié)果如下:“裸核”字段類型不是int64,進(jìn)一步觀察。2.3
任務(wù)實施2.Bagging提升分類器精度步驟6:檢查“裸核”字段的數(shù)據(jù)分布。df["裸核"].value_counts()發(fā)現(xiàn)有“?”代表未知值,需要用平均值代替。按“SHIFT+Enter”,運行結(jié)果如下:2.3
任務(wù)實施2.3.3空值填充步驟1:定義2級標(biāo)題。##<fontcolor="black">空值填充</font>按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度步驟2:用Numpy的缺省值nan替換"?"。df.loc[df["裸核"]=="?","裸核"]=np.nan2.3
任務(wù)實施步驟3:檢查替換結(jié)果。df.isnull().sum()按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度發(fā)現(xiàn)除”裸核”字段有16個空值外,其他字段都不包含空值。2.3
任務(wù)實施步驟4:計算“裸核”字段的平均值。bare_nuclei_mean=df["裸核"].median()bare_nuclei_mean按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度步驟5:用平均值替換空值。df.loc[df["裸核"].isnull(),"裸核"]=bare_nuclei_mean2.3
任務(wù)實施步驟6:檢查替換結(jié)果。df.isnull().sum()按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度2.3
任務(wù)實施步驟7:檢查“裸核”字段的數(shù)據(jù)分布。df["裸核"].value_counts()按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度“裸核”字段中1和1.0看作不同的值,需要轉(zhuǎn)換到同樣的數(shù)據(jù)類型消除差別。2.3
任務(wù)實施步驟8:轉(zhuǎn)換“裸核”字段類型到int64。df["裸核"]=df["裸核"].astype("int64")2.Bagging提升分類器精度步驟9:再次檢查“裸核”字段的數(shù)據(jù)分布。df["裸核"].value_counts()“裸核”字段只有值1。2.3
任務(wù)實施2.Bagging提升分類器精度步驟10:檢查字段類型。()數(shù)據(jù)集所有字段都是int64,能用來訓(xùn)練和測試。按“SHIFT+Enter”,運行結(jié)果如下:2.3
任務(wù)實施2.3.4數(shù)據(jù)轉(zhuǎn)換步驟1:定義2級標(biāo)題。##<fontcolor="black">數(shù)據(jù)轉(zhuǎn)換</font>按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度步驟2:DataFrame對象轉(zhuǎn)換到Numpy對象。X=df.iloc[:,1:-1].valuesy=df.iloc[:,-1].values2.3
任務(wù)實施步驟3:數(shù)據(jù)集切分為訓(xùn)練集和測試集,測試集占20%。X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=4)X_train.shape,X_test.shape,y_train.shape,y_test.shape按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度2.3
任務(wù)實施2.3.5單分類器訓(xùn)練步驟1:定義2級標(biāo)題。##<fontcolor="black">單分類器訓(xùn)練</font>按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度步驟2:在訓(xùn)練集上訓(xùn)練高斯貝葉斯模型。nb_model=GaussianNB()nb_model.fit(X_train,y_train)2.3
任務(wù)實施按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度步驟3:在測試集上評估模型。nb_model.score(X_test,y_test)*100按“SHIFT+Enter”,運行結(jié)果如下:2.3
任務(wù)實施2.3.6Bagging提升性能步驟1:定義2級標(biāo)題。##<fontcolor="black">Bagging提升性能</font>按“SHIFT+Enter”,運行結(jié)果如下:2.Bagging提升分類器精度2.3
任務(wù)實施2.Bagging提升分類器精度步驟2:在訓(xùn)練集上訓(xùn)練基分類器為高斯貝葉斯的Bagging集成分類器。bg_model=BaggingClassifier(GaussianNB(),n_estimators=20,random_state=0)bg_model.fit(X_train,y_train)按“SHIFT+Enter”,運行結(jié)果如下:2.3
任務(wù)實施2.Bagging提升分類器精度步驟3:在測試集上評估Bagging集成分類器。bg_model.score(X_test,y_test)*100按“SHIFT+Enter”,運行結(jié)果如下:BaggingBagging對于包含n個樣本的訓(xùn)練集,進(jìn)行m次有放回的隨機(jī)采樣操作,從而得到m個樣本的采樣集,按照相同的方式重復(fù)進(jìn)行,就可以采集到N個包含m個樣本的數(shù)據(jù)集,從而訓(xùn)練出N個基學(xué)習(xí)器,最終對這N個基學(xué)習(xí)器的輸出投票后決定預(yù)測結(jié)果。Bagging算法的核心思想如下圖:Sklearn庫的BaggingClassifier類提供了Bagging算法接口,定義如下:集成學(xué)習(xí)投票法classsklearn.ensemble.BaggingClassifier(estimator=None,n_estimators=10,**kargs)參數(shù)estimator:對象基學(xué)習(xí)器。n_estimators:int,默認(rèn)值10基學(xué)習(xí)器數(shù)。Bagging主要通過樣本的擾動來增加基學(xué)習(xí)器之間的多樣性,因此Bagging的基學(xué)習(xí)器應(yīng)為那些對訓(xùn)練集十分敏感的不穩(wěn)定學(xué)習(xí)算法,比如神經(jīng)網(wǎng)絡(luò)與決策樹等。從偏差-方差分解來看,Bagging算法主要關(guān)注于降低方差,即通過多次重復(fù)訓(xùn)練提高穩(wěn)定性。實驗所用數(shù)據(jù)集來自許多澳大利亞氣象站的大約10年的每日天氣觀測以及天氣預(yù)報,要求使用歷史降雨數(shù)據(jù)建立機(jī)器學(xué)習(xí)模型,預(yù)測明天下雨的概率。詳細(xì)的字段描述見下表。3.1任務(wù)描述3.AdaBoost提升分類器精度先使用邏輯回歸模型擬合訓(xùn)練數(shù)據(jù),預(yù)測明天是否下雨,然后使用AdaBoost方法提升單分類器精度。任務(wù)目標(biāo)3.1任務(wù)描述3.AdaBoost提升分類器精度字段類型非空標(biāo)簽?例子編號int是是0月份(Month)int是否8.0氣象站(Climate)int是否1.0最低溫度(MinTemp)float是否17.5最高溫度(MaxTemp)float是否36.0降雨量(Rainfall)float是否0.0蒸發(fā)量(Evaporation)float是否8.8光照時間(Sunshine)float是否7.508659217877095最強風(fēng)方向(WindGustDir)int是否2.0最強風(fēng)速度(WindGustSpeed)float是否26.0早上9點風(fēng)向(WindDir9am)int是否6.0下午3點風(fēng)向(WindDir3pm)int是否0.0早上9點風(fēng)速(WindSpeed9am)int是否17.0下午3點風(fēng)速(WindSpeed3pm)int是否15.0早上9點濕度(Humidity9am)int是否57.0下午3點濕度(Humidity3pm)float是否51.65199530516432早上9點大氣壓(Pressure9am)float是否1016.8早上3點大氣壓(Pressure3pm)float是否1012.2早上9點云指數(shù)(Cloud9am)int是否0.0早上3點云指數(shù)(Cloud3pm)int是否7.0早上9點溫度(Temp9am)float是否27.5早上3點溫度(Temp3pm)float是否21.71900320606237今天下雨int是否1:下雨;0:不下雨明天下雨int是否1:下雨;0:不下雨3.2
任務(wù)分解import方式引入依賴的模塊文件讀入DataFrame,檢查樣本和字段類型特征轉(zhuǎn)換到服從正態(tài)分布依賴庫導(dǎo)入數(shù)據(jù)觀察數(shù)據(jù)轉(zhuǎn)換觀察數(shù)據(jù)后,轉(zhuǎn)換特征服從正態(tài)分布,先使用邏輯回歸模型預(yù)測數(shù)據(jù),進(jìn)而采取AdaBoost方法提升單分類器精度。3.AdaBoost提升分類器精度3.2
任務(wù)分解在訓(xùn)練集上訓(xùn)練邏輯回歸模型,并在驗證集上評估模型精度單分類器訓(xùn)練接上AdaBoost加權(quán)組合多個分類器形成強分類器,預(yù)測結(jié)果由強分類器產(chǎn)生AdaBoost提升性能3.AdaBoost提升分類器精度3.3
任務(wù)實施3.3.1依賴庫導(dǎo)入步驟1:定義2級標(biāo)題。##<fontcolor="black">依賴庫導(dǎo)入</font>按“SHIFT+Enter”,運行結(jié)果如下:3.AdaBoost提升分類器精度3.3
任務(wù)實施步驟2:導(dǎo)入依賴庫。importpandasaspdimportnumpyasnpfromsklearn.linear_modelimportLogisticRegressionfromsklearn.ensembleimportAdaBoostClassifierfromsklearn.preprocessingimportStandardScaler按“SHIFT+Enter”,檢查輸出無異常。3.AdaBoost提升分類器精度3.3
任務(wù)實施3.3.2數(shù)據(jù)觀察步驟1:定義2級標(biāo)題。##<fontcolor="black">數(shù)據(jù)觀察</font>按“SHIFT+Enter”,運行結(jié)果如下:3.AdaBoost提升分類器精度3.3
任務(wù)實施步驟2:從文件中讀取數(shù)據(jù)。#index_col=0:第1列作為索引df_train=pd.read_csv('../data/rainfall_train.csv',header=0,encoding='GBK',index_col=0)df_test=pd.read_csv('../data/rainfall_test.csv',header=0,encoding='GBK',index_col=0)df_train.shape,df_test.shape3.AdaBoost提升分類器精度按“SHIFT+Enter”,運行結(jié)果如下:3.3
任務(wù)實施步驟3:字段較多,設(shè)置Pandas顯示所有列。pd.set_option('display.max_columns',None)3.AdaBoost提升分類器精度按“SHIFT+Enter”,運行結(jié)果如下:步驟4:觀察頭5條記錄。df_train.head(5)3.3
任務(wù)實施步驟5:查看字段數(shù)據(jù)類型。df_()3.AdaBoost提升分類器精度運行結(jié)果如右圖:3.3
任務(wù)實施3.3.3數(shù)據(jù)轉(zhuǎn)換步驟1:定義2級標(biāo)題。##<fontcolor="black">數(shù)據(jù)轉(zhuǎn)換</font>按“SHIFT+Enter”,運行結(jié)果如下:3.AdaBoost提升分類器精度3.3
任務(wù)實施步驟2:DataFrame對象轉(zhuǎn)換到Numpy對象。X_train=df_train.iloc[:,0:-1].valuesX_test=df_test.iloc[:,0:-1].valuesy_train=df_train.iloc[:,-1]y_test=df_test.iloc[:,-1]3.AdaBoost提升分類器精度3.3
任務(wù)實施3.AdaBoost提升分類器精度步驟3:訓(xùn)練標(biāo)準(zhǔn)化參數(shù),轉(zhuǎn)換訓(xùn)練集特征到正態(tài)分布。scaler=StandardScaler()X_train_scaled=scaler.fit_transform(X_train)X_train_scaled[0:2,:]按“SHIFT+Enter”,運行結(jié)果如下:3.3
任務(wù)實施3.AdaBoost提升分類器精度步驟4:轉(zhuǎn)換測試集特征服從正態(tài)分布。X_test_scaled=scaler.transform(X_test)X_test_scaled[0:2,:]按“SHIFT+Enter”,運行結(jié)果如下:3.3
任務(wù)實施3.3.4單分類器訓(xùn)練步驟1:定義2級標(biāo)題。##<fontcolor="black">單分類器訓(xùn)練</font>按“SHIFT+Enter”,運行結(jié)果如下:3.AdaBoost提升分類器精度3.3
任務(wù)實施步驟2:在訓(xùn)練集上訓(xùn)練邏輯回歸模型。lr_clf=LogisticRegression()lr_clf.fit(X_train_scaled,y_train)3.AdaBoost提升分類器精度按“SHIFT+Enter”,運行結(jié)果如下:3.3
任務(wù)實施步驟3:在測試集上評估模型。lr_clf.score(X_test_scaled,y_test)3.AdaBoost提升分類器精度按“SHIFT+Enter”,運行結(jié)果如下:3.3
任務(wù)實施3.3.5AdaBoost提升性能步驟1:定義2級標(biāo)題。##<fontcolor="black">AdaBoost提升性能</font>按“SHIFT+Enter”,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)連帶擔(dān)保借款合同模板
- 道路拓寬及改造工程合同
- 辦公用房租賃合同英文范本
- 廚師服務(wù)合同樣本
- 夫妻共同購房合同條款
- 女方凈身出戶離婚法律合同模板
- 跨境融資合同(一)
- 職業(yè)技術(shù)學(xué)院大學(xué)生創(chuàng)新創(chuàng)業(yè)項目合同
- 新能源汽車電機(jī)技術(shù)演進(jìn)與產(chǎn)業(yè)鏈創(chuàng)新考核試卷
- 文化產(chǎn)業(yè)與體育賽事結(jié)合考核試卷
- 《跟單信用證統(tǒng)一慣例》UCP600中英文對照版
- 《醫(yī)院應(yīng)急培訓(xùn)》課件
- 提高教育教學(xué)質(zhì)量深化教學(xué)改革措施
- 招標(biāo)代理機(jī)構(gòu)遴選投標(biāo)方案(技術(shù)標(biāo))
- 證件使用協(xié)議書(2篇)
- KTV商務(wù)禮儀培訓(xùn)
- 三級安全教育試題(公司級、部門級、班組級)
- 2024年《論教育》全文課件
- 貧血醫(yī)學(xué)教學(xué)課件
- 計算機(jī)網(wǎng)絡(luò)與信息安全(2024年版)課件 李全龍 第1-4章計算機(jī)網(wǎng)絡(luò)與信息安全概述-網(wǎng)絡(luò)層服務(wù)與協(xié)議
- 肺栓塞患者護(hù)理查房課件
評論
0/150
提交評論