什麼是機器學習?
機器學習(Machine Learning, ML)是 AI 最重要的分支,也是目前大多數 AI 應用背後的核心技術。
🎯 傳統程式 vs 機器學習
傳統的程式設計就像寫食譜:你告訴電腦每一步該做什麼(如果 A 就 B,否則 C)。但機器學習不一樣——
💡 核心差異 傳統程式:人類寫規則 → 電腦執行規則 機器學習:人類給數據 → 機器自己找出規則
🍎 一個簡單的比喻
想像你要教一個小朋友分辨蘋果和橘子:
- 傳統方法:列出所有規則 —「紅色或綠色的是蘋果,橘色的是橘子,蘋果比較硬…」
- 機器學習:給小朋友看 1000 張蘋果和橘子的照片,每張都標記好是哪一種。看夠多之後,小朋友自己「學會」分辨了。
機器學習就是後者——讓機器從大量數據中自動學習規律。
📊 機器學習的三個要素
- 數據(Data) — 學習的原料,越多越好
- 演算法(Algorithm) — 學習的方法
- 模型(Model) — 學習的成果,用來做預測
🎓 類比 把機器學習想成考試準備:數據是參考書和考古題,演算法是你的讀書方法,模型是你大腦中形成的知識。讀越多考古題、用越好的讀書方法,面對新題目的「預測能力」就越強!
機器學習和傳統程式最大的差別在於?
監督式學習
監督式學習(Supervised Learning)是最常見、最直覺的機器學習方法。
🏫 什麼是「監督」?
「監督」的意思就是有老師、有標準答案。我們給機器一堆有「正確答案」的範例,讓它從中學習。
💡 核心概念 監督式學習需要「標註過的數據」(Labeled Data)——也就是每筆資料都附有正確答案。機器的任務是學會從「輸入」對應到「正確輸出」的規律。
📋 兩大類型
分類(Classification)— 歸類為某一組
- 這封信是垃圾信還是正常信? → 二分類
- 這張照片是貓、狗還是鳥? → 多分類
- 這筆交易是正常還是詐騙? → 二分類
迴歸(Regression)— 預測一個數值
- 根據坪數和地段,這間房子值多少錢?
- 根據病人的數據,血糖可能會是多少?
- 明天氣溫幾度?
🏠 實例:房價預測 輸入(特徵):坪數、樓層、屋齡、距離捷運站公尺 輸出(標籤):成交價格 給模型數千筆歷史成交資料,它就能學會根據特徵預測新房子的價格。這就是監督式的迴歸問題。
「預測明天氣溫」是哪種監督式學習問題?
非監督式學習
如果監督式學習是「有老師教」,那非監督式學習(Unsupervised Learning)就是「自學」。
🔍 沒有正確答案?
非監督式學習處理的數據沒有標籤。機器的任務是自己在數據中尋找隱藏的結構或模式。
💡 比喻 想像你面前有一堆不同形狀、顏色的積木:沒有人告訴你該怎麼分,但你會自然地把相似的積木堆在一起。這就是非監督式學習在做的事——找出數據中的隱藏分組。
📋 主要應用
分群(Clustering)— 把相似的東西放一起
- 客戶分群:把消費者依照購買行為自動分成幾個族群
- 新聞分類:自動把相似主題的新聞歸在一起
- 異常偵測:找出跟其他人行為模式「很不一樣」的案例
降維(Dimensionality Reduction)— 簡化複雜數據
當數據的維度(特徵)太多時,降維可以把它壓縮成較少的維度,同時保留重要資訊。就像把一本 1000 頁的書濃縮成 5 頁的重點摘要。
🛒 實例:電商客戶分群 電商平台有上百萬個客戶,每個人有不同的購買頻率、金額、品項偏好。非監督式學習可以自動把客戶分成「高頻高消費」、「低頻衝動型」、「忠實折扣族」等群體,讓行銷團隊針對不同族群設計活動。
非監督式學習和監督式學習最大的差別是?
特徵工程
在機器學習中,有句名言:「數據的品質決定模型的上限,演算法只是逼近那個上限。」
📐 什麼是特徵?
特徵(Feature)就是你提供給模型的「線索」。以房價預測為例:坪數、樓層、屋齡這些就是特徵。
💡 比喻 特徵工程就像當偵探:你提供的線索越好、越關鍵,破案(預測)就越準確。給一堆無關的線索反而會讓偵探(模型)搞混。
🛠️ 常見技巧
- 特徵選擇:挑出最重要的特徵,去掉沒用的雜訊
- 特徵轉換:把原始數據轉成更有意義的形式(例如:把「出生年」轉成「年齡」)
- 特徵組合:結合多個特徵創造新特徵(例如:BMI = 體重 / 身高²)
- 數據正規化:讓不同尺度的特徵在同一個基準上(例如:身高 170cm 和體重 60kg 的比例差異很大)
⚠️ 常見錯誤 「垃圾進,垃圾出」(Garbage In, Garbage Out) — 再厲害的演算法,如果餵給它品質很差或不相關的數據,結果也不會好。這就是為什麼數據科學家花最多時間在「處理數據」上。
以下哪個不是特徵工程的技巧?
模型評估
訓練完一個模型之後,我們怎麼知道它有沒有真正學會?就像考試一樣——我們需要用「沒看過的題目」來測試它。
📊 訓練集 vs 測試集
我們通常會把數據分成兩部分:
- 訓練集(Training Set) — 讓模型「上課」用的數據(通常佔 70-80%)
- 測試集(Test Set) — 讓模型「考試」用的數據(通常佔 20-30%)
💡 為什麼要分開? 如果用同一份數據又訓練又測試,就像考試前把試卷給學生看——成績再高也不能代表真正學會了。我們要用模型沒看過的數據來測試,才能知道它真正的實力。
🎯 常見評估指標
- 準確率(Accuracy) — 預測正確的比率。直覺但有時會誤導
- 精確率(Precision) — 模型說「是」的裡面,真的是「是」的比率
- 召回率(Recall) — 所有真的「是」裡面,模型抓到幾個
🤯 過擬合 vs 欠擬合
📖 比喻 過擬合(Overfitting):就像死背考古題——訓練數據上表現完美,但遇到新的數據就慘了。模型「記住」了訓練數據的所有細節(包括雜訊),而不是真正的規律。
欠擬合(Underfitting):就像完全沒讀書——連訓練數據都處理不好。模型太簡單,無法捕捉數據中的規律。
一個好的模型要在過擬合和欠擬合之間找到甜蜜點——這是所有機器學習工程師最重要的工作之一。
模型在訓練集上表現很好,但在測試集上表現很差,這是什麼問題?