本文介紹了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
中的列資料類型必須是浮點型或整型。