考慮三種情況:
- 所有節點都在密集集羣。
- 所有節點都在一個集羣中,但集羣很寬。
- 您的許多節點位於羣集中,但少數節點位於遠離羣集的位置。
你在所有成對距離上的總和可以很好地捕獲(1)和(2):近似聚類的結果比大聚類要小。 (3)如何做?這裏,節點總數N
的比例e
很遠,平均距離爲D
。其他(1-e)N
節點聚集在平均距離爲d
。
現在,必須考慮多少個成對連接?對於羣集節點,這種連接有((1-e)N)^2=e^2*N^2-2*e*N^2+N^2
。對於遠端節點,有e^2*N^2
連接。
現在,將這些值乘以平均距離。這給出了總配對平均值(d*(e^2*N^2-2*e*N^2+N^2)+D*(e^2*N^2))/N
。現在,假設e
很小,我們可以忽略包含e^2
的條款。因此,平均值爲d*(N^2-2*e*N^2)/N
。
現在,考慮你的第二個指標:每個人與平均中心點的距離。這在(1)和(2)上也很好:關閉集羣的結果小於大集羣。它如何做3?使用與上面相同的e
來表示異常值的比例。現在,節點距中心點的平均距離由(d*(1-e)*N+D*e*N)/N
給出。換句話說,羣集節點不再像過重那樣加權。
有沒有一種方法可以讓輕量級的計算,仍然更適當地加重羣集節點?我想是這樣。
我的建議是,你從你的列表中選擇隨機節點對,計算節間距離,然後對結果進行平均。對於(1)緊集羣,所有節點將靠近在一起,因此您繪製的所有隨機對都將接近您在計算時得到的成對平均值。對於(2),鬆散的簇,情況也是如此。對於(3),具有異常值的羣集,您更可能從羣集內抽取節點,而不是從外部抽取節點,因此異常值最終會被忽略。
隨着您增加採樣節點的數量,羣集將傾向於支配隨機採樣。我猜測這將提供不錯的準確性,而不是O(N^2)
時間,而不是O(N)
。
我很好奇爲什麼總結配對距離太慢。我認爲設施定位問題是戰略性的,高成本的決策問題,即需要數小時或數天才能運行的算法足以滿足多年將要修復的決策。 – raoulcousins
是的,我的問題在於,與其他因素相比,地理分散一直是三元目標,即所有其他因素相同時,選擇兩個解決方案的分散程度更高。沒有地域分散,我的實施在15秒內提供了良好的結果,我不能超過30秒。我基本上試圖找到一箇中間地帶,我可以收集甚至部分指示有關分散,而無需支付計算打擊。 – user1994232