簡體   English   中英

如何使用ELKI庫的距離矩陣對數據進行聚類?

[英]How can I cluster data using a distance matrix with the ELKI library?

我有一個距離矩陣,我希望在聚類數據時使用該距離矩陣。

我已經閱讀了ELKI文檔,它聲明我可以在擴展AbstractNumberVectorDistanceFunction類時覆蓋distance方法。

然而, distance類返回坐標。 所以從坐標x到坐標y。 這很麻煩,因為距離矩陣僅用距離值填充,我們使用索引來找到從index xindex y的距離值。 這是文檔中的代碼:

public class TutorialDistanceFunction extends AbstractNumberVectorDistanceFunction {
  @Override
  public double distance(NumberVector o1, NumberVector o2) {
    double dx = o1.doubleValue(0) - o2.doubleValue(0);
    double dy = o1.doubleValue(1) - o2.doubleValue(1);
    return dx * dx + Math.abs(dy);
  }
}

我的問題是如何在使用ELKI進行聚類時正確使用距離矩陣。

當輸入數據是數字向量時, AbstractNumberVectorDistanceFunction才是適當的父類。 如果您的數據類型是抽象對象標識符,則改為繼承AbstractDBIDRangeDistanceFunction 然后你必須實施

double distance(int i1, int i2);

已經有針對預計算距離的距離函數的不同實現,例如DiskCacheBasedDoubleDistanceFunction ,其存儲器映射存儲在磁盤上的距離矩陣。 我們應該添加一個DoubleMatrixDistanceFunction ,直接用於Java(在下一個版本中,所有類名和包名都將縮短,順便說一下)。

另請參閱: https//elki-project.github.io/howto/precomputed_distances ,特別是標題為“使用無主數據”的部分,介紹如何在僅使用距離矩陣時設置沒有主數據的數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM