Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
在「Azure 「機器學習」初體驗」一文中,我們了解到如何透過 Azure ML 工具,很快的完成一個實驗 (Experiment)。基本上是遵循以下流程:
上圖的紅框 (apply Algorithms) 則是本文所要介紹的重點。也就是,我該在實驗中選擇哪一種演算法,來解決問題呢?
Azure ML 將內建的演算法分為三種類型:Classification (分類), Regression (迴歸分析) 以及 Clustering (分群):
1. Classification (分類): 如字義所見,即是透過機器學習,預測結果是屬於哪一種類別的方法。最常見的情境就是二分法了,亦即可以回答 True/False 或 Positive/Negative 的問題,比如:
現有的中x電信客戶,會不會轉去遠x電信呢?
客戶有沒有潛在升級或加購產品的商機呢?
以下是 Azure ML 所內建提供的 Classification 演算法 (竟然有類神經網路啊!! 回想到以前在交大修這門課時的熬夜歲月 ><…):
幾種不同「二分法 (Two-Class)」 Classification 演算法的示意圖:
(圖片來源: https://tjo-en.hatenablog.com/entry/2014/01/06/234155 )
2. Regression (迴歸分析): 與前者 Classification 方法的不同之處,在於 Regression 演算法通常是預測出一個「數值」。 比如:明天的台北股市收盤價是多少? 如何根據所在城市、坪數、學區等來預測房價? 都是適合使用 Regression 演算法的問題。
Azure ML 提供的 Regression 演算法包括:
例如我想以汽車馬力 (horsepower) 來預測耗油量 (miles per gallon),以下即是透過 Linear Regression 演算法的預測示意圖:
3. Clustering (分群): 通常是用來處理「沒有正確答案」的問題,這種問題該怎麼辦呢? Clustering 能將有相同特徵者叢集在一塊。 比如:Facebook 辨別使用者屬於哪些不同的群組 (運動愛好者、通勤族、蘿莉控…等),以滿足廣告投放商的需求。
以下是原始資料,及以 K-means Clustering 分群之後的示意圖:
(圖片來源: https://pypr.sourceforge.net/kmeans.html )
小結:
所以回到最初的問題,當我們在設計 Machine Learning 實驗時,要如何決定使用哪種演算法呢?
如果您的問題能夠以 Yes/No 來回答 => Classification (分類)
如果您期望的解答是一個數值的話 => Regression (迴歸分析)
如果您想將具相同特性的資料群集分類 => Clustering (分群)
但請注意,以上僅是大致的判斷法則,仍請各位能徵詢資料科學家的專業意見,選擇最合適的演算法。
另外,有注意到文章標題中的 algorithms 用了複數嗎? 是的,在實際的應用模型中,多種演算法被合併使用是很常見的 (如: Amazon 的情緒分析模型)。
練習題:
最後各位要不要猜猜看,以下這 3 種預測或應用,主要是用了什麼演算法呢?
1. 如左圖,照張狗的照片即可辨別出,這隻狗是屬於哪個品種。 (羅得西亞背脊犬- 影片連結: https://www.youtube.com/watch?v=zOPIvC0MlA4#t=45)
2. 2014 年的第 86 屆奧斯卡金像獎共 24 獎項中,在頒獎典禮前針對入圍者給出一個得獎的機率,最後成功預測了 21 個!
3. 蘇格蘭是否要脫離英國的獨立公投,是 2014 年屬一屬二的國際新聞,在投票前預測結果。
註: 本文介紹的演算法分類中,前兩類 (Classification & Regression) 都是屬於「監督式學習」(Supervised Learning);Clustering 則是屬於「非監督式學習」(Unsupervised Learning) 的範疇。
再註: Azure ML 基本上是根據學習的方法 (如監督式學習/非監督式學習),以及可被應用的方式來作分類。故各位可以注意到,如決策樹 (Decision Tree) 或類神經網路 (Neural Network) 等,可分別被應用到 Classification 或是 Regression 的類別中,以解決不同類型的問題。
延伸閱讀:
2. Microsoft Azure 機器學習官方學習網站 (含教學影片及文件):
https://azure.microsoft.com/zh-tw/documentation/services/machine-learning/
3. TechDays Taiwan 2014 「微軟新世代雲端大數據戰略剖析與 Machine Learning 實例分享」 (中文)
https://channel9.msdn.com/Events/TechDays/TechDays-Taiwan-2014/DCIM310
4. 台灣大學資訊工程系林軒田老師 Coursera 線上課程 (中文)https://www.coursera.org/course/ntumlone