第四章 系統設計與實作
4.4 Weka 機器學習(Machine Learning)
本論文分別使用不同類型機器學習演算法,以測試不同演算法對於上述特徵屬 性資料之效果,總共執行了以下表 2 幾種機器學習演算法。
表 2 本論文使用之機器學習演算法
SVM SimpleLogistic
SMO NaiveBayes
J48 Adaboost
REPTree AdditiveRegression
RandomTree LogitBoost
RandomForest MultiBoostAB
KNN PCA
SVM(Support Vector Machine):當資料有 n 個特徵屬性,我們將資料散佈於 n 維的空間,SVM 就是要尋找是否存在一個 n-1 維的空間,稱作超平面(hyperplane),
能夠順利將兩類資料給分開,或者先利用核函數(Kernel function),將資料轉到更高 維度的空間,以嘗試找到超平面,分類資料。
SMO (Sequential Minimal Optimization):SMO 是一種將 SVM 的問題簡單化的 演算法,SMO 將原先 SVM 計算超平面之問題,分解成若干個於二維空間可以被解 析的子問題,這樣避開了需要解決數值最優化問題的難度。
決策樹(Decision tree)的產生方法其實就是每次選擇一個好的特徵屬性作為分 裂點,以逐步將資料作分類。以下 J48、REPTree、RandomTree 都是決策樹的一種,
RandomForest 則是 RandomTree 的衍生。
J48:又稱 C4.5,是經由 ID3 修改而來的決策樹(Decision Tree)演算法,ID3 是 藉由計算每個特徵屬性的資訊獲利(Information Gain),來決定從哪一個特徵屬性作 為節點下去產生分支;而 J48 則是計算資訊獲利率(Information Gain Ratio),產生的 決策樹。
REPTree:REPTree 可以說是 ID3 之變形,REPTree 與 ID3 同樣使用資訊獲利 決定樹節點,後來再利用 Reduced Error Pruning 進行剪枝的動作。REP 即為 Reduced Error Pruning 的簡稱,其做法為:對於該決策樹的每棵非葉節點的子樹,使用葉節 點代替該子樹,如果該子樹被葉節點替代後形成的新樹之誤差等於或小於原先決策 樹之誤差,則用該葉節點替代子樹。
RandomTree:RandomTree 顧名思義,該決策樹是一個於產生節點階段,隨機 挑選 K 個特徵屬性以決定該節點的決策樹,並且最後產生之決策樹沒有進行剪枝的 動作。
RandomForest:RandomForest 則是藉由,許多的 RandomTree 所產生的決策樹 群,執行 RandomForest 最後產生的分類結果則是藉由這些決策樹群產生的結果進 行多數決。
KNN(K-Nearest Neighbors):將未知類別的資料點放置於已知資料集合的空間 中,計算其周圍距離最近的 K 個鄰居,依照 K 個鄰居的類別作多數決投票(majority vote),藉此多數決的結果決定未知類別資料點的類別。
SimpleLogistic:是簡單線性回歸(simple linear regression)與 LogitBoost 的組合。
所謂的回歸簡單來說就是在一個資料集合中,我們能夠找到一條曲線去嘗試擬和這 些資料集合,如果該曲線是一條直線,則被稱作線性回歸;如果該曲線是一條二次 曲線,就被稱為二次回歸。
NaiveBayes:計算某一個樣本 x 對於不同類別的條件機率,因為 NaiveBayes 假設各個特徵屬性之間沒有關聯,是獨立的,所以我們可以將該樣本 x 對於類別 K
AdditiveRegression:即為 Weka 內實作之 Gradient Boosting 演算法,與 Adaboost 不同的在於 Gradient Boosting 藉由對每次產生模型之損失函數(loss function)進行微 分,以得到其梯度下降(gradient descent)方向,以產生下一個分類模型。
LogitBoost:將 Adaboost 想成是 generalized additive model,然後將其損失函數 改成 logistic regression 則可產生 LogitBoost。
MultiBoostAB:可以把 MultiBoost 想成是 Adaboost 和 wagging 之組合,
MultiBoost 同時擁有兩者的特性,即擁有 Adaboost 的高 bias 以及使用 wagging 的 superior variance reduction 以實作 variance reduction。
PCA(Principal Component Analysis):主成分分析藉由計算特徵屬性的共變異數 矩陣(covariance matrix),然後對共變異數矩陣進行特徵分解,以得出特徵屬性的主 成分,即特徵向量(eigenvector),與它們的權值,即特徵值(eigenvalue),最後再藉由 特徵值的排序,取得較重要之特徵屬性,以降低輸入資料集合的特徵屬性數量,以 提高後續執行機器學習演算法的速度。在此會提到此演算法,是因為本論文偶然發 現,將執行 PCA 的結果交由 SVM,可提高 SVM 的準確率,詳細內容會在下一章 作更多討論。