使用相關性作為距離度量(用於層次聚類)
我想對我的數據進行分層聚類,但我不想使用歐幾里得距離,而是想使用相關性。此外,由於相關係數的範圍從 -1 到 1,在我的研究中,-1 和 1 都表示“共同調節”,我將 -1 和 1 都視為 d = 0。所以我的計算是
我在一個單獨的問題(關於 k-means 聚類)中讀到,您應該使用餘弦定理將r轉換為真正的歐幾里得d :
將相關性轉換為層次聚類距離的最準確方法是什麼?
層次聚類的要求
層次聚類可以與任意相似性和相異性度量一起使用。(大多數工具都期望有差異,但允許負值 - 由您決定是否首選小值或大值。)。
只有基於質心或方差的方法(例如 Ward 方法)是特殊的,並且應該與平方歐幾里得一起使用。(要了解原因,請仔細研究這些聯繫。)
單聯動、平均聯動、完全聯動影響不大,仍然是成對差異的最小/平均/最大。
相關性作為距離度量
如果您預處理數據( $ n $ 觀察, $ p $ 特徵),使得每個特徵都有 $ \mu=0 $ 和 $ \sigma=1 $ (這不允許恆定特徵!),然後相關性降低為餘弦:
$$ \text{Corr} (X,Y) = \frac{\text{Cov}(X, Y)} {\sigma_X \sigma_Y} = \frac{\mathbb{E} \left[ (X - \mu_X) (Y - \mu_Y) \right]} {\sigma_X \sigma_Y} = \mathbb{E} [XY] = \frac1n \left<X, Y\right> $$
在相同條件下,平方歐幾里得距離也減少為餘弦:
$$ d_\text{Euclid}^2(X,Y) = \sum (X_i - Y_i)^2 = \sum X_i^2 + \sum Y_i^2 - 2 \sum X_i Y_i \ = 2n - 2\left<X, Y\right> = 2n \left[1 - \text{Corr}(X, Y)\right] $$
因此,除非您的數據是退化的,否則使用相關性進行層次聚類應該是可以的。只需如上所述對其進行預處理,然後使用平方歐幾里德距離。