Page 1 of 1

使用 PCA 和 DBSCAN 對時間序列進行聚類

Posted: Wed Dec 04, 2024 7:25 am
by aminakhatun26
在本文中,我們將探索時間序列資料的聚類,使用主成分分析 (PCA) 進行降維,並使用基於密度的雜訊應用空間聚類 (DBSCAN) 進行聚類。該技術可以識別時間序列資料中的模式,例如城市中的交通流量,而不需要標記資料。我們將使用 英特爾 Scikit-learn 擴展 來加速性能。

由於人類行為、機器或其他可測量來源,時間序列資料通常表現出重複模式。手動識別這些模式可能具有挑戰性。 PCA 和 DBSCAN 等無監督學習方法使我們能夠發現這些模式。

PCA 和 DBSCAN 都可以透過使用 Intel Extension for Scikit-learn 的修補方案來加速。 Scikit-learn(通常稱為 sklearn)是用於機器學習 (ML) 的 Python 模組。 Intel Extension for Scikit-learn 是Intel 的 AI 工具之一 ,可在單節點和多 希臘手機號碼列表 節點配置中無縫加速 Intel CPU 和 GPU 上的 scikit-learn 應用程式。它動態修補 scikit-learn 估計器,以將 ML 訓練和推理提高高達 100 倍,同時具有同等的數學精度(圖 2)。

根據配對圖,PC1 和 PC2 似乎很好地分離了聚類,因此我們將使用這些組件進行 DBSCAN 聚類。我們也可以得到 DBSCAN EPS 參數的估計值。這裡,選擇的值是 50,因為 PC1 與 PC0 圖表明,對於觀察到的簇來說,這是一個合理的分隔距離:

Image

從圖 4 可以看出,DBSCAN 在尋找合理的彩色簇方面做得很好,並且與原始地面實況資料(圖 1)進行了很好的比較。在這種情況下,聚類完美地恢復了用於生成資料的底層模式。透過使用PCA進行降維和DBSCAN進行聚類,我們可以有效地識別和標記時間序列資料中的模式。這種方法允許發現資料中的底層結構,而不需要標記樣本。
我們產生合成波形資料來模擬時間序列模式。資料由三個不同的波形組成,每個波形都添加了雜訊以模擬現實世界的變化。我們將使用 Gael Varoquaux 創作的 scikit-learn 凝聚聚類範例(圖 1)。它可在 BSD 3-Clause 或 CC-0 授權下使用。