iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0

CLIQUE 模型詳細解釋

CLIQUE(CLustering In QUEst)是一種基於密度的子空間聚類演算法,特別適合於處理高維數據。CLIQUE 的獨特之處在於,它不僅能夠發現數據的聚類結構,還能識別高維數據集中具有意義的子空間,這對於理解複雜數據中的模式非常有用。

主要概念:

  1. 子空間聚類: 高維數據集中,某些維度可能不對聚類有太大影響,CLIQUE 會自動發現那些對聚類有顯著影響的子空間,並在這些子空間內進行聚類。

  2. 密度網格: CLIQUE 將數據空間劃分為若干個小的網格單元(grid cells),然後計算每個單元的密度。如果一個單元的密度超過了預設的閾值,則認為該單元是稠密的,並將其標記為可能包含聚類的部分。

  3. 稠密區域合併: 連續的稠密單元會被合併為一個更大的聚類區域。這樣,CLIQUE 可以發現不規則形狀的聚類,而不是僅限於球形或凸形聚類。

  4. 演算法步驟:

    • 劃分子空間: 首先將每個維度劃分為若干個等寬區間,形成初步的網格。
    • 檢測稠密單元: 計算每個網格單元的密度,標記出超過密度閾值的稠密單元。
    • 合併稠密區域: 將相鄰的稠密單元合併,形成聚類。
    • 提取聚類: 在子空間中提取聚類,並將結果應用於整體數據集中。
from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
from collections import defaultdict

iris = load_iris()
X = iris.data
df = pd.DataFrame(X, columns=iris.feature_names)

grid_size = 10
grid = []

for i in range(X.shape[1]):
    min_val = np.min(X[:, i])
    max_val = np.max(X[:, i])
    grid.append(np.linspace(min_val, max_val, grid_size))

grid_cells = np.array([np.digitize(X[:, i], grid[i]) for i in range(X.shape[1])]).T

cell_density = defaultdict(int)
for cell in grid_cells:
    cell_density[tuple(cell)] += 1

density_threshold = 10
dense_cells = {cell for cell, count in cell_density.items() if count >= density_threshold}


clusters = []
visited = set()

for cell in dense_cells:
    if cell not in visited:
        cluster = set()
        stack = [cell]
        while stack:
            current = stack.pop()
            if current not in visited:
                visited.add(current)
                cluster.add(current)
                neighbors = [tuple(np.array(current) + np.array(offset))
                             for offset in np.identity(len(current), dtype=int)]
                for neighbor in neighbors:
                    if neighbor in dense_cells:
                        stack.append(neighbor)
        clusters.append(cluster)

由於 CLIQUE 是專門用於高維數據的,因此對於像鳶尾花數據集這樣的低維數據,它的優勢可能不如在高維數據中的表現那麼明顯。不過,這個示例依然展示了如何將這種基於密度的子空間聚類方法應用於實際數據分析中。


上一篇
DAY19 OPTICS 19/30
下一篇
DAY21 主成分分析PCA21/30
系列文
機器學習與深度學習背後框架與過程論文與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言