機器學習到底是什麼?核心概念與開發環境安裝
當你聽到「機器學習」這四個字,腦中浮現的是不是密密麻麻的數學公式、戴著眼鏡的資料科學家、以及昂貴的 GPU 伺服器?
事實上,機器學習的核心概念非常簡單。讓我們用一個生活化的例子來理解。
用買房來理解機器學習
想像你是一個第一次買房的人,你走進房仲公司,房仲問你:「請問您想找什麼樣的房子?」
你可能會這麼回答:
- 「我希望室內坪數大約 30 坪以上」
- 「預算大概 1500 萬左右」
- 「希望走路到捷運站不要超過 10 分鐘」
- 「屋齡不要太老,15 年以內」
房仲聽了你的描述後,在腦中快速回想過去成交的案子,然後跟你說:「我手上剛好有三間符合您需求的房子!」
恭喜你,你剛剛親身經歷了一次機器學習的完整流程!
讓我們把這個場景對應到機器學習的術語:
| 買房場景 | 機器學習術語 | |---------|------------| | 你過去看過的房子資料 | 訓練資料 (Training Data) | | 坪數、價格、捷運距離、屋齡 | 特徵 (Features) | | 你最終買了哪間 | 標籤 (Label) | | 房仲腦中的配對邏輯 | 模型 (Model) | | 你說出需求 | 預測 (Prediction) |
機器學習的本質就是:從過去的資料中找出規律,然後用這個規律來預測新的資料。
機器學習的三大類型
所有的機器學習問題,都可以歸類為以下三種:
1. 監督式學習 (Supervised Learning)
這是最常見也最實用的機器學習類型。它的概念是:你給電腦一堆「有答案的題目」,讓它學會作答,然後拿「沒答案的題目」來考它。
迴歸 (Regression):預測一個連續數值
- 房價預測(輸出:1200 萬)
- 明天氣溫預測(輸出:28.5°C)
- 下個月營業額預測(輸出:$350,000)
分類 (Classification):預測一個類別
- 這封 Email 是垃圾郵件嗎?(輸出:是/否)
- 這筆交易是詐騙嗎?(輸出:正常/可疑/詐騙)
- 這張照片是貓還是狗?(輸出:貓/狗)
2. 非監督式學習 (Unsupervised Learning)
你給電腦一堆「沒有答案的資料」,讓它自己找出其中的「群組」或「模式」。
- 客戶分群:根據消費行為,把客戶分成「高價值 VIP」、「一般客戶」、「休眠客戶」
- 異常檢測:自動找出與眾不同的資料點(例如信用卡盜刷)
3. 強化學習 (Reinforcement Learning)
讓電腦像玩遊戲一樣,透過「嘗試 → 獎勵/處罰」的方式自己學會最佳策略。
- AlphaGo:擊敗世界棋王的圍棋 AI
- 自駕車:在模擬環境中學會開車
機器學習的標準開發流程
不管你用什麼演算法,機器學習專案通常遵循以下六個步驟:
1. 定義問題 → 2. 收集資料 → 3. 資料清洗與特徵工程
↓
4. 選擇演算法並訓練模型
↓
5. 評估模型
↓
6. 部署與預測
- 步驟 1:你要預測什麼?(房價?點擊率?流失機率?)
- 步驟 2:收集相關的歷史資料(從資料庫、CSV、API 等)
- 步驟 3:處理缺失值、移除異常值、轉換資料格式(最耗時的步驟!)
- 步驟 4:選擇適合的演算法,用訓練資料來「訓練」模型
- 步驟 5:用測試資料評估模型準確率
- 步驟 6:將模型包裝成 API,整合到你的應用中
安裝 Python 機器學習環境
我們將使用 Anaconda(或 Miniconda)來管理 Python 環境,這是最簡單的方式。
安裝 Miniconda(輕量級,推薦)
# macOS (Intel / Apple Silicon)
brew install miniconda
# 或者手動下載
# https://docs.conda.io/en/latest/miniconda.html
建立專屬環境
# 建立一個名為 ml-course 的 Python 環境
conda create -n ml-course python=3.11
# 啟動環境
conda activate ml-course
# 安裝所需的套件
pip install pandas numpy matplotlib seaborn scikit-learn jupyter joblib
確認安裝
打開 Python 直譯器,輸入以下指令確認每個套件都能正常載入:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn
print(f"Pandas version: {pd.__version__}")
print(f"NumPy version: {np.__version__}")
print(f"Scikit-Learn version: {sklearn.__version__}")
如果每個套件都能正常載入,你的機器學習環境就準備完成了!
本日總結
在本章中,你學到了:
- ✅ 機器學習的本質:從資料中找出規律,用來預測新資料
- ✅ 三大類型:監督式學習(迴歸/分類)、非監督式學習、強化學習
- ✅ 標準開發流程:從定義問題到部署模型的六個步驟
- ✅ 開發環境安裝:使用 Miniconda 建立 Python 機器學習環境
下一章,我們將實際取得一份真實的資料集,並用 Pandas 進行資料清洗與探索!