java—从elkicorepertisedbcan中的dbids邻居获取行索引

vmjh9lq9  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(281)

我目前正在尝试(并且正在努力)实现一个weightedcore predicate ,以便在elki中实现weighteddbscan。corepredicate的修改代码如下所示:

public boolean isCorePoint(DBIDRef point, DBIDs neighbors) {
      WeightSum = 0.0; // Make sure to initialize the weights as 0

      for (DBIDIter it = neighbors.iter(); it.valid(); it.advance()) {
        /*
          Within here, I need to extract the original indices of the neighbours detected 
          in the original file, and need to link that back to the original data 
          and accumulate the weight colummns to the WeightSum to get the weighted 
          core points in dbscan
        */
      }

      return WeightSum >= minpts;
    }
  }

其思想是,原始corepridicate的输入之一是加权列数据集,我将使用提取的索引“提取”权重。我的问题是获取相邻dbid指向的数据的原始索引。我尝试过internalgetindex()和offset索引的方法(它们与原始数据的索引没有任何链接),但是这些方法都不太走运,对于如何绕过这个问题我有点不知所措。
如果有人能帮忙,我将不胜感激
谢谢

06odsfpq

06odsfpq1#

换一种方式。
将每个对象的权重存储在 DoubleDataStore 你可以通过 DBID . 不要回到“原始”索引。
另外,请使用局部变量,否则代码在并行运行时将具有竞争条件。

相关问题