「機器學習練習」 用 Scikit 學習台灣指數趨勢(一)- 機器學習 101
Published in
Apr 6, 2019
放心!這篇絕對不嘴砲,不會再出現 Ctrl + C 這種東西惹。
機器學習是一種統計分析的方法,主要概念是,我們給他一堆資料,叫他給我結果。
這結果可能直接給出我們要的答案(如:左轉或右轉),也可能是給出一些抽象的概念,我們再依據這個概念去做分類。
簡單來說,機器學習可以處理的問題可以粗分為四大類:分類問題(classification)、回歸問題(regression)、群聚問題(clustering)、概念衍伸(Rule Extraction)。
一、分類問題(classification):我們給這個機器學習的模型學習一組已知答案的數據,舉例如:X = [0,2,3,3,4,5,6,7,8] Y = Taipei
X = [0,7,3,3,4,5,6,7,8] Y = Kaohsiung
X = [0,4,3,3,4,5,6,7,8] Y = Taichung
X = ...給了超多組電話號碼,結果是區碼的數據。我們預期這個模型學到看到一隻電話號碼就可以判別他是哪一個市區,這就是屬於分類問題。假設模型訓練好後,我們丟入 X = [0,2,1,2,3,4,5,6,7,8]模型可以給出 Taipei 就代表學習成功了!二、回歸問題(regression)我們給這個機器學習的模型學習一組已知答案的數據,舉例如:X = [0,1,2,3] Y = 12
X = [0,3,4,2] Y = 22
X = [0,1,1,1] Y = 23
X = ...給了超多組亂碼,結果是亂碼的總和。我們預期這個模型學到看到一組亂碼,可以回丟一個數字。解釋一下,與分類問題最大的差別就是預測結果,當預測結果是連續的,問題就會是屬於回歸問題,若預測結果是離散的,問題就會屬於分類問題或其他。回歸問題的實例,可以點這個連結,利用過去六個小時的河川水位與降雨量來預測兩小時後的水位。三、群聚問題(clustering)給機器學習模型一堆不知道答案的資料,給他一些分群邏輯(如點對點的距離),讓他把資料做分類。
EX: Facebook 人臉辨識四、概念衍伸(Rule Extraction)這個比較抽象,它類似於用分析方法找到規則。
比如,你丟了一萬張照片,群聚後發現你跟你姐一直被分在同一類,那你就可以合理的懷疑,你跟你姐可能是同一個爸爸和媽媽。
照片辨識 -> 血緣關係 ,我想這大概就是概念衍生吧!
覺得這太嘴砲沒關係,假如你去做一萬組貨物的銷量回歸預測,發現啤酒跟尿布購買力的週期是一樣,那你就可以合理的懷疑,大家喝完酒都比較容易生小孩,銷量預測 -> 喝酒可以生小孩。
到這邊,基本上我們已經了解機器學習可以解決什麼問題。
但重點還是,他會如何解決?
通常我們會選用一種演算法或是多種演算法的組合去處理我們要處理的問題,只要結果是可以收斂的,都是可以一試的演算法。
那演算法有哪些呢?
1. Regression Algorithms
這就回歸方法,水位預測就是利用這個方法解決的。
當然回歸有很多種特殊方法,這邊就不細說。2. Instance-based Algorithms
這是拿著已經發生的事實,去推算未來某個跡象出現時,會發生什麼事。3. Clustering Algorithms
分群,你把一堆點灑在一個任意維度的空間裡面,自己去定義一個歐幾里得距離(Euclidean distance),聚一起的就是一掛的。
代表算法有 k-Means、k-Median。4. Kernel Algorithms
這個算是大數據時代前,機器學習裡最猛的演算法,最著名的是支撐向量機算法(Supported Vector Machine, SVM)。概念是,我們把原始數據映射到高維度上,再去做分類,反正 polynomial function 總有一階可以完美切割這些資料。5. Ensemble Algorithms
這個我滿喜歡的,學習各種訓練好的機器得到的結果,再算出一次結果,大概可以想成一台 Alphago,他要知道現在這一步的局勢,再加上你下的這一步的局勢,還有他接下來下那一步的後續發展,藉由這樣來決定他要下哪一步。6. Neural Network Algorithms
這是學習我們的神經細胞啊,輸入一堆資料進去神經元,神經元做出非線性反應這樣。7. Deep Learning
這個算是神經網路的一個變態,也是我們接下來主要要講的一個方法,他的概念呢,就想成有好多個神經元們,彼此之間互相輸出輸入彼此的訊號,最後整個神經系統給出一個訊號或一個類別。
當然還有很多其他種類的算法,基本上都是要用到再去找論文就好。
這邊附上一下 reference,給有興趣的人繼續挖掘。