
今天要來整理的是關於機器學習裡的問題類型。
剛開始看到這段的時候,我心想——
我就是對資料跟數字超級不行才念語文的,
而且這個看起來是資料處理,跟使用AI沒有太大關係吧?
算了不想搞懂,應該不用懂這個吧?😅
但是後來發現,考試超常考這個的!
唉~還是只好認命的想辦法把它搞懂。
認命的多讀了一下之後,
發現如果把這些資料相關的問題再稍微整理一下,
其實就是在回答:機器學習到底在解什麼問題。
也是很多人在學 AI 時,最容易搞混的地方。
大概可以分成下列幾種常見的問題類型:
➡️迴歸問題
➡️分類問題
➡️聚類問題
➡️時間序列
➡️降維
嗯,每一個字拆開來看都看得懂,
可是組在一起到底是什麼意思?
好吧,先問一下AI,這是什麼玩意。

問完之後,我試著把它整理成一張圖:
機器學習三種常見問題整理(迴歸、分類、聚類)
- 迴歸:預測數值
- 分類:選已知類別
- 聚類:自己分群(沒有答案)
看起來很像,但其實完全不一樣。
迴歸問題(Regression)
我第一次看到「迴歸」這個名詞,
是在說明「線性迴歸」(Linear Regression)的資料中看到的。
我記得我一開始看到「線性迴歸」這個玩意的時候,
腦中一直覺得很疑惑,
「啊不是就是『線性』的嗎?
那它到底是在迴歸什麼東西?
而且為什麼是『迴歸』,不是『回歸』?」
所以蕾依奈爾就直接(不耐煩)的問了AI:
「 所以線性迴歸到底是在迴歸什麼鬼?」
AI回答我說:
「線性迴歸,是一種用資料找關係、預測數值的方法」。
嗯?那它根本就沒有「迴歸」嘛!😑(莫名的有點怒)
繼續追問下去,原來是以前有個統計學家,
觀察到人的身高會「往平均值靠近」的現象,
也就是說高個子的父母,小孩雖然也高,
但通常不會比父母更高,而是會「矮一點點」;
反之,矮個子的父母,小孩會比父母「高一點點」。
統計學家把這個現象稱為「迴歸到平均」,
才有了 regression(迴歸)這個說法。
😑
我只能說,如果是依照蕾依奈爾的語言腦,
我會用「趨近」平均值的概念來命名,不會用regresssion。
不過因為我不是厲害的統計學家,
所以我能說什麼呢😅
至於為什麼翻成「迴歸」、而不是「回歸」,
這就更無解了。
而且現在看到好多高父母,生出來的小孩都比父母高很多。
然後我也沒有比我爸媽高……
決定放棄追問。
所以總之,「迴歸」原本指的是,
數據會「向平均值靠近」的現象,
像線性迴歸這種方法。
(至於「邏輯迴歸」其實是用來做分類,等一下解釋。總之這名字真的很會誤導人😓)
這套方法被廣泛應用在資料處理上,
變成了「找尋變數間關係」的意思。
由於可以找出資料之間的大致趨勢跟關係,
因此最後可以用來進行預測。
現在機器學習裡的「迴歸」,
已經不是在講「回到平均」這件事了。
所以「迴歸問題」其實就是:
「根據已經有的資料,找出一個趨勢,然後用來預測數值。」
比方說,丟給機器或程式一堆資料:
好比房子的坪數、地段、屋齡……等資料,
它就會試著畫出一條「最合理的線」,
然後告訴你,
這間房子,大概值多少錢。
可惜蕾依奈爾不是統計學家也還不會寫程式,
不然如果做一個台股大盤迴歸預測,
說不定可以實現財務自由😏
至於「迴歸」的演算法,
最常見的就是線性迴歸(用一條線去描述關係),
其他像是多項式迴歸或決策樹迴歸,
其實都是在用不同方式做同一件事:
「猜一個數字」。
分類問題(Classification)
嗯~好,所以迴歸是指「找尋變數間關係」,
而且這個名詞最早是指「向平均值靠近」,
現在多半用來指一種「用來預測數值」的方法。
所以,
——「邏輯迴歸」——
應該是符合某種邏輯、或是運用某些邏輯,
來進行迴歸的一種方式囉?
😑
統計學家的腦袋構造果然跟我的語言腦長的不一樣。
AI了一下之後,發現邏輯迴歸的定義是:
——邏輯迴歸(Logistic Regression) 是一種用來解決「分類問題」的統計工具。——
❓
那它哪裡有在做迴歸??邏輯在哪裡??
原來所謂的「邏輯」,
其實不是什麼「很有邏輯的推理」,
而是指一個叫做 logistic function 的數學函數。
「迴歸」的部分,
則是因為它在計算的過程中,
先算出一個數值,
再把這個數值轉換成一個介於 0 到 1 之間的機率。
這個機率值,
不是拿來當最終答案,
而是被拿來判斷是「哪一類」的機率。
比如說,
- 0或1
- 是或否
- A或B
所以可以導出「是」或「不是」的分類結果。
邏輯迴歸是分類問題當中最常見的演算法之一。
因為分類問題通常就是在問是「A」、還是「B」?
(當然,有時候也可以分成不只兩類,但最常見的是這種二選一的情況。)
好吧~跨領域通常都是一個
「打破現有藩籬、包容未知(儘管我覺得有點不合理)的東西」的過程。
就像不懂日文的人,第一次看到,
——「家族が住宅で一家心中」——
大概會以為是什麼大家族在家裡,
一家和樂融融互通彼此心裡的想法,
之類的意思。
😑
……漢字拆開來每個字都能理解。
但猜起來意思完全不對。
其實家族指的是一家人,不是整個大家族。
心中指的是一起自S。
所以整句話意思是
「一家人在家裡集體自S」。
——照這樣來說,我也不應該用我自以為的字面意思去解釋。
好,所以這個邏輯迴歸的定義,我買單。
結論就是,
分類問題是一個「把資料分到不同標籤裡」的過程。
比方說:
這封信是正常信件,還是垃圾信件?
這個保戶是高風險,還是低風險?
而邏輯迴歸,是分類問題中最常見的演算法之一。
其他還包括:
- 決策樹(Decision Tree)
➡️ 像問問題一路分下去,很像 ADV 攻略路徑圖,最後會有 GE 跟 BE 的決策。 - 支持向量機(Support Vector Machine)
➡️ 在中間畫一條線把兩類分開,名字看起來很像**A夢的道具,但其實不是什麼機器。 - K-近鄰演算法(K-Nearest Neighbors)
➡️ 看你附近的人是誰,是分類不是聚類。
聚類問題(Clustering)
雖然說,
不應該用字面意思來自己腦補,
但是大腦是用語言來思考的,
看到陌生名詞的第一瞬間,
還是會用語言的意思去嘗試理解。
分類,
把一堆東西分成不同類別。
聚類,
把一堆東西分類之後放在一起……?
❓
蛤??不一樣喔??
啊聚類,不就是一堆東西分類之後,
類似的東西分在一起嗎?
😑
統計學家的腦果然不是我想像的那個樣子。
嗯?還是說應該是翻譯前輩們的問題?
為什麼要翻成這麼令人混淆的詞彙😑
原來事實是:
「分類」(Classification)是:
你已經知道有哪些類別, 然後再把資料分進去。
答案是在這之前就已經存在的。
在訓練的方法上也不一樣,
分類是監督式學習 (Supervised Learning)。
也就是說電腦在學習時,你已經告訴過它答案了(有標籤)。
就像你拿到一堆餐盒要發放,
上面已經寫好:
- 便當
- 甜點
你只要做一件事:把餐盒放到對的分類裡
然後把便當發給要吃便當的人,
把甜點發給要吃甜點的人。
不過,「聚類」(Clustering)就不是這麼運作的。
聚類,是一個根據資料之間的相似程度,
機器自己把東西分成一群一群的過程。
機器一開始就沒有標準答案,
也不知道「要分成幾類」,
沒有人告訴它答案是什麼,
它得自己依照現有資訊把資料分成關係相近的類別。
比如說,有一堆餐盒,
上面什麼標示都沒有寫。
你只能自己看:
- 這些看起來像主食
- 那些看起來像甜的
然後自己把餐盒分到「主食」、跟「甜點」的類別去。
在訓練的方法上,聚類是非監督式學習 (Unsupervised Learning)。
機器事先不知道答案,需要自己找規律(無標籤)。
而在聚類問題當中,最常出現演算法是:
- K-平均演算法 (K-means)
簡單來說,
就是把一堆東西分成幾堆, 讓「看起來像的放在一起」。
如果把分類跟聚類放在一起看,差別大概是下面這樣。

嗯~不禁覺得我一開始決定用英文來記相關的專有名詞,
是正確的決定。
如果看到 Classification vs. Clustering,
應該就比較不會覺得這兩個很像了。
如果你的目的是通過iPAS考試,
因為考題上面的專有名詞都會同時標示中英文,
應該也不會只記英文不知道中文考題在問什麼。
所以用英文記絕對不吃虧的。
一句話記住這三種問題的差別
最後如果用一句話來說:
➡️迴歸是「要你猜一個數值」(預測數值),
➡️分類是「答案已經給你了,你只要選一個」(有答案的分組),
➡️聚類是「連答案都沒有,你要自己分出來」(沒有答案的分組)。
至於一開始提到的「時間序列」跟「降維」,
它們的性質其實跟迴歸、分類、聚類不太一樣。
上述這幾種問題比較像是在回答:
「這個問題在問什麼?」
而時間序列跟降維,
更偏向是在處理「資料本身的特性」。
所以這兩個,就留到下次有機會再來整理好了😊

















