接續上集監督式學習的觀念,本篇筆記紀錄非監督式學習的常見名詞和概念。
以下圖片截圖自 All Machine Learning algorithms explained in 17 min
2. 非監督式學習 (Unsupervised Learning)
2.1 分群 (Clustering)
分群Cluster 和分類 Classification 是兩個容易混淆的概念,分類是監督式學習,我們已經有已知兩類的資料特徵(例如:貓和狗)。
但在不清楚分類的情況底下,有可能會分成許多類別。有一個方法--K-means 可以做分類
K-Means:聚類演算法,用於將資料分為 K 個群組
- 初始化中心點(Centroids): 隨機選取 K 個點 (譬如3點) 作為初始中心點,這些點代表每個群組的中心。
- 分配資料點到最近的中心點: 計算每個資料點與所有中心點之間的距離,將該點分配到最近的中心點所屬的群組。
- 更新中心點: 將每個群組內的所有資料點的平均值計算出來,並將其設為新的中心點。
- 重複分配與更新: 重複步驟 2 和 3,直到中心點位置不再變化(或變化小於設定的閾值),即達到收斂。
- 結果輸出: 所有資料點被分配到 K 個群組中,每個群組有一個最終的中心點。
適用場景
- 顧客分群: 例如,根據購買行為將顧客分為「高價值顧客」、「潛在顧客」和「低價值顧客」。
- 影像分割: 將影像中的像素分為不同群組,進行目標識別或背景分離。
- 文件分類: 依據文件的內容相似性分群,用於文本挖掘。
- 醫學研究: 分析患者的症狀或基因特徵,將患者分為不同的亞群以進行診斷或治療。
影片參考:【机器学习】聚类和K-means算法
2.2 關聯分析 (Association)
「關聯規則」(Association Rules),例如超市購物籃分析(Market Basket Analysis)。其核心在於找出不同物品之間的關聯性,回答「如果客戶買了商品 A,是否會同時購買商品 B」。分析結果可能會買奶油的人會傾向買蛋,所以在奶油區廣告蛋的特價會有效果。
常見演算法:Apriori
- Support(支持度): 表示特定項目組合出現在資料集中的頻率。
- Confidence(置信度): 表示在已購買 A 的情況下,同時購買 B 的可能性。
- Lift(提升度): 衡量規則的強度,值越大表示 A 與 B 的關聯越強。
舉個簡單的 Apriori 演算法例子:
1. 資料準備
假設我們有以下交易數據(購物籃):
- 交易 1: {牛奶, 麵包, 起司}
- 交易 2: {牛奶, 麵包}
- 交易 3: {奶油, 麵包}
- 交易 4: {牛奶, 起司}
- 交易 5: {牛奶, 麵包, 起司}
2. 篩選重要項目
在篩選時,通常會設置一個門檻,例如**支援度(Support)和信賴度(Confidence)**的最低值,來排除不重要的規則。舉例來說:
- 支援度計算:每個項目的出現比例,例如「牛奶 -> 麵包」的支援度是 60%,因為在 5 筆交易中,有 3 筆同時包含「牛奶」和「麵包」。
- 信賴度計算:在包含「牛奶」的交易中,有多少比例同時包含「麵包」。例如,信賴度是 3/4=75%。
3. 篩選規則的應用
當我們發現規則「牛奶 -> 麵包」的支援度和信賴度足夠高,則可以進一步分析:
- 促銷建議:如果顧客買了牛奶,建議一起購買麵包。
- 陳列策略:將牛奶與麵包放在相近的貨架上。
4. 處理多項目組合
如果購物籃中有多個項目(如 a、b、c、d),我們可以用關聯分析找出例如:
- 單一關聯:「a -> b」
- 多重關聯:「a, b -> c」
例如:
- 「牛奶, 麵包 -> 起司」表示顧客買了牛奶和麵包時,有很高機率會買起司。
- Lift(提升度)可幫助確定這些關聯是否比隨機出現更有意義。
我請 ChatGPT 幫我生成關聯圖,透過 Lift 的程度就可以判斷多項產品組合的關係。
2.3 降維 (Dimensionality Reduction)
降維是一種將高維資料投影到低維空間的技術,用於減少資料的複雜度,同時保留重要資訊。它主要應用於資料可視化和降噪,常用的方法有 PCA 和 t-SNE。
什麼是維度?
- 數據的特徵數量:
- 每個「維度」代表一個數據特徵。例如,若我們分析「年齡」和「收入」,這是2個維度。通常是表格的每個欄表頭。
- 假設我們增加更多特徵(如教育背景、消費習慣等),這些特徵都會成為額外的維度。
- 幾何空間的表示:
- 在2維空間,我們可以用X和Y軸描繪數據點;在3維空間,則加入Z軸。
- 若超過3維,我們無法直接視覺化,但數學上可以表示為多維空間。
- 為何需要降維?
- 當維度太多(高維度),分析會變得複雜,並可能產生「維度詛咒」(資料稀疏,模型效果變差)。PCA 就是一種有效的降維方法。
PCA (Principal Component Analysis) 核心概念
PCA 主要目的是:
- 壓縮數據維度,但仍保留大部分數據的變異(資訊量)。
- 找出資料中「影響最大的方向」(主成分),以減少維度。會考慮1. 最大可分性 (投影到平面的時候盡量分開) 2. 最近重構性,樣品投影到平面要盡量小,如紅色虛線的距離加總要盡量小。
步驟:
- 標準化資料(讓每個特徵的均值為 0,方差為 1)。也需要做去中心化,讓中心平移到原點
- 計算資料的共變異矩陣,了解變數之間的關聯。
- 找出共變異矩陣的特徵值與特徵向量。
- 選取解釋變異最多的特徵向量,作為主成分。
如何找到
應用場景:
- 降維以加速模型運行。
- 去除資料中的噪音,保留核心資訊。
- 資料可視化:將高維度資料壓縮到 2D 或 3D。
3. 強化學習 (Reinforcement Learning)
3.1 核心概念
- 強化學習與監督式學習的區別:回饋機制 (Reward Mechanism)。
- 沒有固定的「標籤」,而是透過試錯學習如何達成目標。
- 系統根據行動結果(環境的回饋)得到獎勵或懲罰,目的是最大化獎勵。
- 例子:
- 下棋,AI 嘗試不同策略,根據勝負獲得分數獎勵。
- 自駕車、機器人導航