Я имею дело с многомерным и большим набором данных, поэтому мне нужно получить только первые N выбросов из вывода ResultWriter
. Есть ли в elki возможность получить из этого вывода только первые N выбросов?
Верхние n выбросов в ResultWriter
Ответы (1)
ResultWriter
— один из самых старых кодов в ELKI, и его необходимо переписать. Он довольно общий - он пытается выяснить, как лучше всего сериализовать вывод в виде текста.
Если вам нужен какой-то определенный формат или конкретное подмножество, правильным способом будет написать свой собственный ResultHandler
. Существует руководство по написанию 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.
}
person
Erich Schubert
schedule
05.03.2015
Привет, Эрих, спасибо за ответ. Я реализовал, но в строке
DBIDs ids = order.order(order.getDBIDs());
я получаю сообщение об ошибке. Итак, я изменился на DBIDs ids = order.getDBIDs();
Этот способ запуска, но он упорядочивается по идентификаторам, а не по баллам. Существует ли метод заказа по баллам? Я ищу в javadoc, но я не могу найти.
- person Wesin Alves; 06.03.2015
Я понял. я изменил на
DBIDs ids = order.iter(order.getDBIDs());
. Итак, результат упорядочивался по баллам. большое спасибо.
- person Wesin Alves; 06.03.2015