我正在处理高维和大数据集,因此我需要从ResultWriter
的输出中获得前N个异常值。
elki中有一些选项可以从这个输出中获得前N个异常值吗?
答案 0 :(得分:1)
ResultWriter
是ELKI中最古老的代码之一,需要重写。它相当通用 - 它试图弄清楚如何最好地将输出序列化为文本。
如果您想要某种特定格式或特定子集,正确的方法是编写自己的ResultHandler
。有tutorial for writing a ResultHandler
。
如果要在结果中找到输入坐标,
Database db = ResultUtil.findDatabase(baseResult);
Relation<NumberVector> rel = db.getRelation(TypeUtil.NUMBER_VECTOR_VARIABLE_LENGTH);
将返回包含数字向量的第一个关系。
要迭代按其异常值得分排序的对象,请使用:
OrderingResult order = outlierResult.getOrdering();
DBIDs ids = order.order(order.getDBIDs());
for (DBIDIter it = ids.iter(); it.valid(); it.advance()) {
// Output as desired.
}