一、聚類算法基礎認知
核心概念:聚類屬于無監督學習,核心是把 “相似的樣本” 自動分到同一組(簇),不需要預先標注的標簽。主要挑戰是怎么定義 “相似性”、評估聚類效果以及確定最好的聚類數量。
距離度量:
歐式距離:最常用的距離度量方式,衡量多維空間中兩點的直線距離,能直觀體現樣本在空間中的遠近關系。
曼哈頓距離:衡量兩點在標準坐標系上的絕對軸距總和,適用于更強調軸方向距離的場景。
二、K 均值算法核心原理
算法步驟:
初始化:隨機選 k 個樣本作為初始聚類中心。
樣本分配:計算每個樣本到各聚類中心的距離,把樣本分到最近的簇里。
更新中心:計算每個簇內所有樣本的均值,作為新的聚類中心。
迭代收斂:重復樣本分配和中心更新,直到聚類中心穩定或者達到最大迭代次數,得到最終聚類結果。
關鍵參數(基于sklearn.cluster.KMeans):
n_clusters:指定聚類簇的數量(k 值),要根據業務場景或評估指標來確定。
max_iter:最大迭代次數,用來控制算法運行的時間。
n_init:算法獨立運行的次數,選取最優結果,避免陷入局部最優解。
random_state:固定隨機種子,保證每次實驗結果能重復出現。
三、聚類效果評估
CH 指標(Calinski-Harabasz):從兩個方面評估聚類質量:
類內緊密度:計算類中各點與類中心的距離平方和。
類間分離度:計算各類中心點與數據集總中心的距離平方和。
指標特性:CH 值越大,說明類內越緊密、類間越分散,聚類效果就越好。
四、算法優缺點分析
優點:
原理簡單直觀,容易理解和實現。
計算效率高,適合處理大規模的常規數據集。
缺點:
k 值需要人工預先指定,很難準確確定最優數量。
對初始聚類中心敏感,可能會陷入局部最優解。
只能發現凸形分布的簇,難以識別任意形狀的聚類結構。
五、實踐應用流程
數據生成:用sklearn.datasets.make_blobs創建聚類數據集,關鍵參數有:
n_samples:樣本的數量。
n_features:特征的維度。
centers:預設的類別數。
cluster_std:控制類內數據的分散程度。
聚類實現:通過KMeans模型對數據進行擬合,得到聚類標簽。
結果可視化:繪制散點圖展示聚類分布,標記出聚類中心,直觀呈現聚類效果。
效果評估:計算 CH 指標,再結合可視化結果,綜合判斷聚類質量。
六、學習心得
K 均值算法作為經典的聚類方法,在數據探索、模式識別等場景中應用廣泛。它的優勢是高效和簡潔,但也要注意 k 值選擇和初始中心對結果的影響。通過這次學習,不僅掌握了算法的原理和實現流程,還理解了無監督學習中 “相似性度量” 和 “聚類評估” 的核心思想,為后續學習復雜聚類算法打下了基礎。在實際應用中,要結合數據特點選擇合適的距離度量和評估指標,這樣才能得到更有意義的聚類結果。