速記AI課程-手把手的機器學習(二)

手把手的機器學習

經過早上的一陣混亂(同學們技術光譜差異頗大、無線網路不穩等)後,下午狀況似乎改善了不少。

下午的重點是分類演算法中最經典的樹狀模型。一開始先介紹基本中的基本、經典中的經典-決策樹(Decision Tree)。決策樹主要透過含有Label的資料來進行分類模型(長得像一棵樹)之訓練,最後再透過這棵樹來進行推論與預測。以鐵達尼號的生死預測為例,我們可以利用1912年的乘客資料(如年紀、艙等、性別等)以及是否存活(即為Label,我們所關心所想要預測的結果),來建構一棵決策樹。假設未來鐵達尼號在基隆港復航,我們就可以利用這棵樹來決定我們存活的機率,再決定要不要上船(或是保險…)。

詳細的運作方式是,先找出一個可以把資料分得最乾淨的特徵。所謂分得乾淨,是指經過這個特徵判別以後,可以明確把資料分為不同Label。繼續以鐵達尼號生死預測例子來說,因為女人跟小孩先上船(電影有演),所以我們先選擇「性別」作為分類的特徵。從1912年的乘客資料來看,女性的生存(Label)機率是74%,男生則是驚人的19%,「看起來」性別確實是一個非常重要的決定生死因素!不過,因為還有非常多的特徵(如艙等、年紀)可以選擇,「看起來」這種方式無法決定哪一個特徵應該最優先,因此就要用到一些簡單的數學了。

所謂分類的乾不乾淨,專業術語為資訊純不純、亂不亂,數學上可以用吉尼不純度( Gini impurity)、熵(Entropy)以及分類錯誤( Classification Error)三種方式來計算。三種方式都是在衡量混亂的程度,越高代表越不純。在機器學習最重要的Scikit-learn套件中,預設是採取吉尼不純度來衡量。

不純砍頭

當樹的第一個節點決定後,接下來就以相同的方式繼續往下產生節點,直到分類完成。以下面決策樹為例,若為男生(走左邊)、且年紀大於等於7歲(還是走左邊),死亡率高達83%,因此若男生真的想參加復航,建議不是保高額的險,就是自備救生器材…

鐵達尼號生死預測決策樹(From Trevor Stephens)

決策樹的缺點之一,就是很容易過度擬合(overfitting)。既然一棵樹容易見樹不見林,容易產生偏見,那要不多建幾棵樹來看看?這種方法就是所謂的隨機森林(Random Forest)。隨機是指在建構決策樹時所使用的資料跟特徵都是隨機的,而森林是指產生很多棵樹,而最後的分類結果,則由各棵樹採用多數決的方式來決定,頗有「三個臭皮匠,勝過一個諸葛亮」之味道。

很民主的隨機森林

前面提到的隨機森林,是採用Ensemble(整體學習)方法中,所謂的Bagging。由前面的隨機森林介紹,可以得知Bagging是偏向平行處理的概念,那有沒有非平行處理的方法呢?有的,就是序列性的Boosting。GBM (Gradient Boosting Machine)則是利用Boosting概念的一種分類演算法。GBM 一次只建立一棵樹,但每次建立新樹之時,即會修正前一棵樹較弱的地方,周而復始地運算後,就會長出一棵非常強的樹,用更專業的術語就是,「每一次建立模型,都是朝著之前模型損失函式的梯度下降方向」。(白話文就是學了乖,避免重蹈覆轍)

Bagging vs Boosting

對於GBM數學推導跟細節有深入興趣者,可參考以下十分札實的文章。

XGBoost改良了GBM的不足之處,如加上 Regularization以避免overfitting、具平行運算能力、可自定義最佳化目標、處理遺失值等,非常強悍,有興趣可至以下了解各參數意義與實作。

最後則是提到資料科學界不能不知的Kaggle。此網站經常舉辦資料分析競賽,參賽者只要上傳自己預測的結果,就能跟世界各地的高手一較高下,討論區中也常常有高手分享心得,堪稱資料科學界的「華山」。

商管 * 科技 | 顧問 + 稽核 | AI X Fraud | baubimedi@gmail.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store