Реализация Adaboost для нескольких измерений в Java

Я работаю над реализацией AdaBoost на Java. Он должен работать для «двойных» координат в 2D, 3D или 10D. Все, что я нашел для Java, это для двоичных данных (0,1), а не для многомерного пространства.

В настоящее время я ищу способ представить размеры и инициализировать классификаторы для повышения.

Я ищу предложения о том, как представить многомерное пространство в Java и как инициализировать классификаторы для начала.

Данные находятся где-то между [-15,+15]. И целевые значения 1 или 2.


person Gil Piven    schedule 08.01.2012    source источник


Ответы (3)


Чтобы использовать расширенное дерево решений для пространственных данных, типичный подход состоит в том, чтобы попытаться найти «точку раздела» на некоторой оси, которая минимизирует остаточную информацию в двух поддеревьях. Для этого вы находите некоторое значение вдоль некоторой оси (скажем, оси x), а затем разделяете точки данных на две группы — одну группу точек, чья координата x ниже этой точки разделения, и одну группу точек, чья координата x равна выше этой точки разделения. Таким образом, вы преобразуете пространственные данные с действительными значениями в данные 0/1: значения 0 — это значения ниже точки разделения, а значения 1 — значения выше точки разделения. Таким образом, алгоритм идентичен AdaBoost, за исключением того, что при выборе оси для разделения вы также должны учитывать потенциальные точки разделения.

person templatetypedef    schedule 08.01.2012

Как насчет использования JBoost? Думаю, это то, что вам нужно.

person Steve Lianoglou    schedule 10.01.2012
comment
Спасибо за предложение. Я на самом деле нашел его и попытался немного поиграть с ним. Это может быть очень полезно для тех, кто хочет использовать AdaBoost. Первым намерением было внедрить Adaboost самостоятельно. Кроме того, в составе Weka есть очень хорошие инструменты, которые, как я обнаружил, могут будет отличным подспорьем для запуска и использования многих алгоритмов интеллектуального анализа данных, а также доступен исходный код. - person Gil Piven; 10.01.2012
comment
Я не понимаю, однако ... вы сказали, что все вещи, которые вы нашли, работали с двоичными данными, а не с многомерным пространством, и JBoost не ограничивается ни одним из них, так что ... я думаю, я запутался тогда в чем твой вопрос? - person Steve Lianoglou; 11.01.2012
comment
Нет намерения запутать, извините за это. Чтобы уточнить мой вопрос: я хотел реализовать AdaBoost самостоятельно, а не просто использовать существующую версию. Это было частью одного из моих проектов. JBoost может быть очень полезен в качестве эталона и платформы для запуска AdaBoost. - person Gil Piven; 12.01.2012

Почему бы вам не использовать массив double[] для каждого объекта? Это распространенный способ представления векторов признаков в Java.

person Has QUIT--Anony-Mousse    schedule 09.01.2012
comment
Я не думаю, что это вопрос, который задают; Я думаю, что ОП любопытно, как использовать AdaBoost для реальных данных, а не как хранить все внутри. - person templatetypedef; 09.01.2012
comment
В яблочко! Я пытаюсь реализовать AdaBoost для реальных данных, представленных как двойной тип. - person Gil Piven; 10.01.2012