一、核心知識點梳理
- 聚類算法:K-means(無監督學習的典型代表)
• 基本思想: 將數據集劃分為K個簇,使得同一簇內的數據點儘可能相似,而不同簇間的數據點儘可能不同。
• 偽代碼與流程:
1. 輸入: 數據集 D,預設的簇數量 K。
2. 初始化: 隨機選擇K個數據點作為初始質心。
3. 迭代優化:
a. 分配步驟: 計算每個數據點到各個質心的距離(如歐氏距離),並將其分配到最近的質心所在的簇。
b. 更新步驟: 重新計算每個簇的質心(即該簇所有數據點的平均值)。
4. 終止條件: 當質心的位置不再發生顯著變化,或達到最大迭代次數時,算法停止。
5. 輸出: K個簇的劃分結果。
• 關鍵認知:
◦ 聚類屬於無監督學習,因為訓練數據沒有標籤,算法完全基於數據自身的分佈結構進行劃分。
◦ 對聚類結果的期望是 “簇內相似度高,簇間相似度低”。
- 集成學習:通過組合多個模型提升性能
• 核心前提: 要獲得好的集成效果,個體學習器(基學習器)必須具有一定的準確性和多樣性。只有當個體學習器存在差異,犯不同的錯誤時,集成起來才能取長補短,提升泛化性能。
• 兩大主流範式:Boosting 與 Bagging
特徵 Boosting(提升法) Bagging(袋裝法)
個體學習器關係 強依賴,必須串行生成。後一個模型重點關注前一個模型分錯的樣本。 相互獨立,可以並行生成。
代表算法 AdaBoost, GBDT, XGBoost 隨機森林
採樣方式 每輪迭代調整訓練樣本的權重。 對訓練集進行有放回隨機採樣。
- 隨機森林:Bagging的擴展與昇華
• 基本思想: 隨機森林是Bagging的一個特例和增強,它以決策樹為基學習器,並在Bagging的樣本擾動基礎上,增加了特徵擾動。
• 偽代碼與核心機制:
1. 從原始訓練集中進行Bootstrap採樣(有放回抽樣)T次,生成T個不同的訓練子集。
2. 用每個訓練子集訓練一棵決策樹。在訓練每棵樹的每個節點進行分裂時,不是從全部特徵中找最優分裂點,而是先隨機選取一個特徵子集,然後從這個子集中找最優特徵進行分裂。
3. 所有決策樹組成“森林”。
4. 對新樣本進行預測時,每棵樹進行投票(分類)或取平均(迴歸),以最終結果作為森林的預測。
• 關鍵認知:
◦ 隨機森林通過樣本採樣和特徵採樣兩種方式,進一步增加了個體決策樹之間的多樣性,有效降低了模型方差,防止過擬合,使其成為非常強大和穩健的算法。
二、重點題目覆盤與解析
- 填空題: 集成的個體學習器要(多樣),集成後才更可能有性能的提升。
◦ 解析: 這是集成學習的根本原理。如果所有基學習器都一樣,集成將沒有意義。 - 填空題: 隨機森林除了對樣本採樣(樣本擾動),還要對(特徵)採樣(屬性擾動)。
◦ 解析: 這是隨機森林區別於普通Bagging的關鍵,也是其名字中“隨機”的由來。 - 多選題: 個體學習器間存在強依賴關係必須使用(A. 串行, C. Boosting)方法進行集成。
◦ 解析: Boosting的工作機制就是串行的,後一個模型依賴於前一個模型的結果。 - 單選題: 聚類算法屬於(B. 無監督學習)。
◦ 解析: 聚類處理的是無標籤數據。 - 單選題: 聚類的結果期望“簇內相似度”(高),“簇間相似度”(低)。
◦ 解析: 這是評估聚類效果好壞的直觀標準。
三、學習總結與反思
本次學習明確了監督學習(如分類、迴歸)與無監督學習(如聚類)的根本區別。重點掌握了兩種重要的集成學習範式:
• Boosting 家族通過串行、關注錯誤的方式不斷減小偏差,構建強模型。
• 隨機森林 作為 Bagging 的傑出代表,通過並行、引入隨機性的方式降低方差,實現“三個臭皮匠,頂個諸葛亮”的效果。
理解這些算法背後的思想(為什麼這麼做),比死記硬背偽代碼更重要。這為後續學習更復雜的模型(如GBDT, XGBoost)打下了堅實的基礎。