雖然在前天的文章談到機器學習的步驟、在昨天的文章談到 機器學習中不同的學習方式 ,但到底,我們是怎麼讓一個只懂得 0 和 1 的電腦(機器)學習呢?
這裡,我們先來談談一個關於跟機器學習高度相關的基本概念:迴歸分析 (Regression)
根據 Wikipedia 上面的解釋:
迴歸分析(英語:Regression Analysis)是一種統計學上分析數據的方法,目的在於了解兩個或多個變數間是否相關、相關方向與強度,並建立數學模型以便觀察特定變數來預測研究者感興趣的變數。更具體的來說,迴歸分析可以幫助人們了解在只有一個自變數變化時應變數的變化量。一般來說,通過迴歸分析我們可以由給出的自變數估計應變數的條件期望。
啊啊啊突然冒出好多名詞,什麼自變數、應變數等等。這裡舉個簡單的例子來解釋,假設今天有個「鐵人考試」,學生只要答對一題就可以得 10 分,答對兩題得 20 分,以此類推,可能出現的結果如下:
答對題數 | 獲得分數 |
---|---|
1 | 10 |
2 | 20 |
3 | 30 |
4 | 40 |
5 | 50 |
6 | 60 |
7 | 70 |
8 | 80 |
9 | 90 |
10 | 100 |
在這個例子當中,如果我們想知道學生能夠得幾分,我們只要知道他答對幾題就可以知道,所以在這裡「答對題數」就是「自變數」,也是我們無法預知的數,只能透過觀察而得;「獲得分數」就是「應變數」,就是相對應「自變數」會跟著變動的數,也是我們想要預知的結果。
不過這裡例子很明顯的,「答對題數」和「獲得分數」,也就是「自變數」和「應變數」有個邏輯的對應關係也就是
獲得分數 = 答對題數 x 10
也可以寫成
應變數 = 自變數 x 10
然後在數學中更常看到的長相為
y = x * 10
or
y = 10x
讓我們回頭再看一次關於迴歸分析的解釋:
迴歸分析(英語:Regression Analysis)是一種統計學上分析數據的方法,目的在於 了解兩個或多個變數間是否相關、相關方向與強度,並建立 數學模型 以便觀察特定變數來預測研究者感興趣的變數。
所以 y = 10x
這個式子,我們就可以說是這次「鐵人考試」學生得分的「數學模型」。然後我們也發現兩個變數(答對題數&獲得分數,或者,自變數&應變數)之間的關係:只要學生多答對 1 題,分數就會多得 10 分。
講到這裡,就一定要來個 BUT
你可能會想:「啊這不就理所當然,因為我們規定每題 10 分,所以當然每答對一題,就會得到 10 分,這樣還需要什麼迴歸分析?」
沒錯,你說得完全沒錯。之所以舉這個例子,是想讓大家先熟悉一下關於自變數、應變數、數學模型之間的關係。在這個例子當中,有很明確的「邏輯關係」,也是人刻意定出來的規則,然而在許多情況下,人們只能觀察到事情發生的現象,並收集觀察到的資訊或數據,我們根本不清楚背後這些數據之間的「邏輯關係」,因此需要迴歸分析的協助。
舉個例子,譬如物理學家就是希望透過觀察自然現象(或實驗)收集相關數據,透過迴歸分析建立起能解釋這個世界運作的理論模型,也就是不同變數之間的邏輯關係,然後再透過實驗去驗證模型的準確性(當然背後都有相對應的物理理論支持其邏輯性)。
然而在這個世界中,有許多事情或現象是可以透過物理理論來解釋,並能夠準確預測其結果,但更多時候人們遇到的問題,可能無法找到明確的物理或數學上的邏輯關係,不過人們還是希望能夠找到預測結果的方法。
譬如今天阿鐵想要買一輛新車,但是想知道這台車的耗油程度如何,除了看看車商數據(拿來廣告用的理想數據)之外,阿鐵也想從不同的車主身上實際去了解這台車的耗油程度,於是阿鐵就在論壇上發文詢問,很幸運的有 10 位好心車主分享了他們的油耗與里程數,資料如下
油耗(公升) | 里程(KM) |
---|---|
9 | 45 |
4 | 24 |
7 | 59 |
3 | 28 |
10 | 91 |
7 | 28 |
4 | 42 |
3 | 18 |
1 | 14 |
9 | 82 |
油耗與里程之間的關係應該是相當複雜,因為有太多的因素會影響到每公升的里程數。阿鐵沒有想要當一個追根究底的科學家去了解不同因素所帶來的影響,但是他需要能夠估計未來當他買下這台車的時候,每公升的油實際能跑幾公里,這時候他就需要迴歸分析來幫他解決這個問題。
... to be continued