全部產品
Search
文件中心

PolarDB:K均值聚類演算法(K-Means)

更新時間:Jul 06, 2024

本文介紹了K均值聚類演算法(K-Means Clustering Algorithm,以下簡稱K-Means)相關內容。

簡介

K-Means演算法是一種迭代求解的群集演算法。該演算法原理為:先將資料分為K組,隨機選取K個對象作為初始的聚類中心,然後計算每個對象與各個種子聚類中心之間的距離,將每一個對象分配給距離它最近的聚類中心, 聚類中心以及分配給它們的對象就代表一個聚類。即K-Means演算法將輸入表的某些列作為特徵,根據使用者指定的相似性計算方式,將未經處理資料聚成若干類。

使用情境

K-Means演算法被廣泛應用於需要對資料記錄進行聚類的情境。以下列出了六類使用情境:

  • 文檔分類

    根據標籤、主題和文檔內容將文檔分為多個不同的類別。

    首先,需要對文檔進行初始化處理,將每個文檔都使用向量來表示,並採用術語頻率識別常用術語的方式來進行文檔分類,然後對文檔向量進行聚類來識別文檔組中的相似性。

  • 客戶分類

    K-Means演算法能協助行銷人員改善他們的客戶群(在其目的地區域內工作)。並根據客戶的購買歷史、興趣或活動監控來對客戶類別做進一步分析。

    例如:使用K-Means演算法可以將電信預付費客戶的付費方式分為儲值模式、傳送簡訊和瀏覽網站幾個類別。對客戶進行分類有助於公司針對特定客戶群制定特定的廣告。

  • 欺詐檢測

    K-Means演算法在欺詐檢測中也扮演著一個至關重要的角色,被廣泛應用於汽車、醫學保險和保險欺詐檢測領域。利用以往欺詐性索賠的歷史資料,根據它和欺詐性模式聚類的相似性來識別新的欺詐。

  • 警報的自動化聚類

    大型企業IT基礎架構技術組件(如網路、儲存或資料庫)會產生大量的警報訊息,由於警報訊息可以指向具體的操作,因此必須對警報資訊進行手動篩選,確保後續操作的優先順序。對資料進行K-Means聚類可以對警報類別和平均修複時間做深入分析,有助於對未來故障進行預測。

  • 通話記錄分析

    通話記錄(CDR)是電信公司對使用者的通話、簡訊和網路活動資訊的記錄。將通話詳細記錄與客戶設定檔結合在一起,能夠協助電信公司對客戶需求做更多的預測。

  • 識別犯罪地點

    K-Means演算法可以對城市中特定地區的相關犯罪資料進行分析。分析內容包括犯罪類別、犯罪地點以及兩者之間的關聯等,可以對城市或地區中容易犯罪的地區做高品質的勘察。

參數說明

下表中的參數為建立模型CREATE MODEL文法中model_parameter參數的取值,您可以根據當前需求選擇對應的參數。

參數

說明

n_clusters

類數量。預設值為4。

樣本

建立模型與模型離線訓練:

/*polar4ai*/
CREATE MODEL test_kmeans WITH
(model_class = 'kmeans', x_cols = 'dx1,dx2',
 y_cols='',model_parameter=(n_clusters=2))
 AS (select * from db4ai.testdata1);

模型預測:

/*polar4ai*/
select dx1,dx2 FROM
PREDICT(MODEL test_kmeans,
select * from db4ai.testdata1 limit 10)
WITH (x_cols = 'dx1,dx2',
      y_cols='');
說明

x_cols中的列資料類型必須是浮點型或整型。