目錄
摘要
13 AdaBoost算法
13.1 本章工作任務
13.2 本章技能目標
13.3 本章簡介
13.4 編程實戰
13.5 本章總結
13.6 本章作業
本章已完結!
摘要
本章實現的工作是:首先采用Python語言讀取數據并構造訓練集和測試集。然后建立AdaBoost模型,利用訓練集訓練該模型,接著優化最大迭代次數,得到AdaBoost優化模型,求解得到每個弱分類器G(x)和它的權重α,進而得到最終的分類器,實現計算模型準確率,最后將預測的分類結果可視化。
本章掌握的技能是:1、使用os庫改變工作目錄。2、使用pandas庫讀取數據。3、使用train_test_split函數構建訓練集和測試集。4、使用matplotlib庫實現數據的可視化,繪制分類圖。5、使用sklearn.ensemble庫中的AdaBoostClassifier函數建立AdaBoost模型,進行模型擬合,計算模型準確率。6、使用sklearn.model_selection中的GridSearchCV函數對AdaBoost參數中的最大迭代次數進行自動調參。
13 AdaBoost算法
13.1 本章工作任務
采用AdaBoost分類算法編寫程序,根據600名學生的英語成績和數學成績進行分類,將其劃分為文科生、理科生和綜合生。1、算法的輸入是:600名學生的英語成績和數學成績以及正確的學生分類信息(文科生、理科生和綜合生)數據。2、算法模型需要求解的是:每個弱分類器和分類器的權值。3、算法的結果是:根據學生的成績預測的分類結果。
13.2 本章技能目標
掌握AdaBoost算法原理。
使用Python讀取數據并劃分為訓練集和測試集。
使用Python實現AdaBoost算法模型的建模與優化。
使用Python實現AdaBoost算法模型的計算與預測。
使用Python對AdaBoost算法模型結果進行可視化展示。
13.3 本章簡介
AdaBoost算法是:一種集成算法,其核心思想是針對同一個訓練集反復學習得到一系列弱分類器(子分類器),每個弱分類器都具有分類能力,但是對最終的分類結果的影響力不同(權值不同),每個弱分類器通過加權后得到強分類器(總分類器)。它的特點是:在每一次迭代時,被弱分類器錯誤分類的樣本權值會增大,正確分類的樣本權值會減少,權值變更后的樣本用來訓練下一個弱分類器。
弱分類器(子分類器)是指:每次訓練迭代過程中所產生的分類器。
強分類器(總分類器)是指:由多個弱分類器的分類結果進行加權計算,得到最終分類器(輸出最終分類結果)。
AdaBoost分類算法可以解決的實際應用問題是:根據已知的樣本特征值(學生成績)和其對應的標簽值(學生類別)找到樣本屬性值和標簽值的關系,從而對于任意 K 個新的樣本(學生),都可以利用該樣本所具有的屬性值推算出該樣本所屬的類別。
本章的重點是:AdaBoost算法的理解和使用。
13.4 編程實戰
步驟1 導入NumPy包,將其命名為np,導入os包,導入pandas包,將其命名為pd。