研究方法

壹、資料前處理

這份資料中沒有缺失值,所以沒有進行填補的動作。資料中分別有類別變數跟數值的部分。資料由類別變數及數值組成,於是我們將資料中的類別變數以One-Hot Encoder的方式轉換成相對應數值,再將數值資料以20分一組將分數畫分成五個組別和將資料0~60分一組剩下10分一組,共5組兩種分法。

貳、資料分析

在各欄位的相關係數的表中,我們得知,普遍來說,吃標準餐的同學數學成績會比吃免費餐的同學數學成績來的更好,而男生的數學成績普遍比女生更好。我們也發現數學成績與閱讀和寫作成績有較高度正相關,而免費餐點與數學成績則有較高的負相關。表中顯示閱讀成績與數學成績及寫作成績與數學成績的相關係數遠高於其他欄位。這說明了雖然每個學生先天有差異,但經由不斷的學習更是提升數學成績的要件。

参、建立模型

機器學習用來訓練的方法有很多種,我們所使用的方式是將資料切出一個比例70%30%來做訓練並且設定每次抽資料的種子。前者70%是訓練集是我們用來放進去機器學習裡面訓練,後者30%是測試集是用來測試訓練出來的模型有沒有與原始資料相同。

 

透過訓練及訓練出來的機器模型,可以使用測試集進行比對,我們這次使用多種機器學習得方法,來找出我們問題得最佳模型。我們預計使用的雞學習模型如下:

一、邏輯斯迴歸(Logistic Regression)

邏輯斯迴歸是一種解決二分類(0or1)問題的機器學習方法。用於判定事件發生的概率,顯示不同特徵之間的關係然後計算某個結果的發生。用來處理分類問題,找到一條直線可以將資料做分類。主要是利用 sigmoid function(S型函數) 將輸出轉換成 0~1 的值,表示可能為這個類別的機率值。羅吉斯回歸只適用於二元分類的場景,來解決二分類問題,得出了具體的概率值,再通過正則化來實現。

  

、決策樹(Decision Tree)

決策樹屬於樹狀階層的資料結構,用來處理分類及回歸的問題,可將較複雜的資料,進行分割再分割,變成許多小的區塊去討論,決策樹由一系列是與否的條件決策組合而成,每一個分支節點都代表著一個決策事件或反應,用來顯示這選擇的下一步及這個選擇導致的後續事件,可以很清楚的分析預測,直到到達根結點,得到最後的分類結果。

  

、SVM RBF

     RBF kernel,將每一個樣本點轉換到無窮的特徵空間,是一種用來計算低維度空間樣本的高維度空間關係的函數,能夠逼近任意的非線性函數,可以用來處理系統內的難以分析的規律性,在模型訓練中,增加gamma會使每個實例樣本影響範圍變小、決策邊界變的不規則,gamma的功能類似正規化超參數,如果模型過度擬合就要降低他,如果擬合不足就要增加他。

  

、Catboost

     CatBoost是一種基於對稱決策樹為機器學習器。實現的參數少但支持類別型變量和高準確性的GBDT框架,主要處理高效合理的類別型特徵。CatBoost模型預測是由一群弱學習者做出的。每個樣本創建決策樹的隨機森林都不同,在梯度增強中,樹是一個接一個地創建的。模型中的先前樹不會更改。將所有浮點特徵、統計信息和獨熱編碼特徵進行二值化,然後使用二進制特徵來計算模型預測值。


、 隨機森林

     隨機森林是一種非常熱門的機器學習演算法,可以應用於分類、回歸、特徵選擇等領域,它利用的是一種集成學習算法,它基於決策樹演算法,通過結合多個決策樹進行預測,以提高模型的準確性和泛化能力。在隨機森林中,每個決策樹都是獨立建立的,每棵樹的建立過程都是隨機的。這樣可以減少模型的過度擬合問題,提高模型的泛化能力。

 

XGBoost

     XGBoost是一種機器學習算法,用於解決回歸和分類等問題。它是梯度提升機算法的一種實現,通過迭代地組合多個弱分類器(通常是決策樹)來形成一個強大的分類器。XGBoost實現了並行處理、特徵提取等高級技術,使其在處理大規模、高維度、稀疏數據上具有出色的效能和準確性,XGBoost也支持分布式計算,讓大型數據集能夠更加高效地訓練和預測。廣泛應用於許多機器學習,包括回歸、分類、排序等。。在許多機器中,XGBoost是最受歡迎的算法之一,並廣泛應用

 

、 AdaBoost

     分類器在訓練資料後會計算出這個分類器的錯誤率,也就是分錯樣本的機率,然後依照錯誤率去更新分類器的權重。在下一個分類器訓練前,會根據上一個分類器的權重去調整每個樣本的權重,正確分類的權重降低,錯誤分類的權重提高。達到一定次數或滿足特定條件之後,確定最終的分類結果,與Bagging相同的都是通過多個弱分類器組合成一個強分類器,使最後的準確率得到提升。

 

、SVM – Kernel = Linear

             Kernel=linearSVM的一種核函數,主要用於解決二元分類問題。在SVM中,核函數的作用是將數據映射到一個高維空間中,讓我們可以在這個空間中找到一條線來區分不同類別的數據。Kernel=linear可以將數據映射到一個高維的線性空間中,使得我們可以使用線性方法來分割不同類別的數據。它的優點是計算速度快且易於調參,因此在實際問題中被廣泛應用。需要注意的是,Kernel=linear只能處理線性可分的問題。

   

、Light – GBM

             LightGBM是一個高效的機器學習框架,它利用梯度提升決策樹算法來實現分類、回歸、排序等多種任務。相對於傳統的GBDT算法,LightGBM通過保留大梯度的樣本,減少小梯度樣本對模型的貢獻,再將相似特徵進行分組,從而減少特徵數進而提高模型訓練速度和準確性。LightGBM還支援多GPU訓練和分布式訓練等特性,這使得它在處理大量數據和複雜模型時更具優勢。

 

、Linear - SVC

             LINEAR SVC是一種基於線性核函數的二元分類器,它可以用來將不同類別的數據點分開。它的優點是處理速度很快,特別適合處理高維數據。不過需要注意的是,它對於非線性問題的處理能力很有限。如果要處理複雜數據,可能需要使用其他核函數或更高級的模型。


肆、模型評估

我們利用十種不同的模型對資料做預測,並將數學成績欄位以區間的形式做預測,因此我們利用分類指標,使用accuracy_score準確率作為判斷好壞的依據,並加上confusion matrix混淆矩陣查看資料分佈情況。