ResultWriter 中的前 n 个异常值

Top n outliers in ResultWriter

我正在处理高维和大型数据集,所以我需要从 ResultWriter 的输出中获取前 N 个离群值。 elki 中有一些选项可以从该输出中获取前 N 个离群值?

ResultWriter是ELKI中最老的一些代码,需要重写。它相当通用 - 它试图弄清楚如何最好地将输出序列化为文本。

如果您想要某种特定格式或特定子集,正确的方法是编写您自己的 ResultHandler。有个tutorial for writing a ResultHandler.

如果要在结果中查找输入坐标,

Database db = ResultUtil.findDatabase(baseResult);
Relation<NumberVector> rel = db.getRelation(TypeUtil.NUMBER_VECTOR_VARIABLE_LENGTH);

将return包含数字向量的第一个关系。

要遍历按离群值排序的对象,请使用:

OrderingResult order = outlierResult.getOrdering();
DBIDs ids = order.order(order.getDBIDs());
for (DBIDIter it = ids.iter(); it.valid(); it.advance()) {
  // Output as desired.
}