Как реализовать алгоритм случайного леса с нуля в C ++ - PullRequest
0 голосов
/ 31 января 2019

Мне нужно создать случайную лесную реализацию в C ++ (и только в C ++) с возможностью включения дополнительных обучающих данных на ходу (или, по крайней мере, периодически). По всей вероятности, это будет проблемой классификации.

Обратите внимание, что я новичок как в машинном обучении, так и в C ++, поэтому мои очки могут показаться немного новичками.

Данные будут поступать в потоках в режиме реального времени.решили упомянуто ниже

  1. Соберите огромное количество обучающих данных (я получу это из исторически сохраненных данных в моей организации)

  2. СоздатьСтруктура данных n-арного дерева.Пожалуйста, предложите, если Бинарное дерево будет лучшим выбором!

  3. Создайте некоторый алгоритм, чтобы определить количество деревьев в лесу. Любые предложения здесь ??

  4. Реализация кода для создания случайных подмножеств огромных обучающих данных.Количество подмножеств должно быть равно количеству деревьев, определенному на шаге 3.

  5. На основе каждого случайного подмножества обучающих данных реализовать алгоритм, который решает, какой параметр предиктора следует использовать в качествеузел, вокруг которого будет разбито дерево.Это может быть либо на основе итеративного дихотомизатора-3 (энтропия и прирост информации), либо индекса Джини (примесь Джини).

  6. После выполнения большой задачи по созданию деревьев решений (включенозавершив шаги 2, 3, 4 и 5), создайте лес с количеством деревьев, определенным на шаге 3.

  7. Как только появятся тестовые данные, отправьте их в лес.

  8. Хранить решение отдельных деревьев где-нибудь.

  9. Провести голосование большинством и прийти к окончательному результату.

Пожалуйста, дайте мне знать, если это новичок, как подход!Пожалуйста, укажите ошибки или предложения по улучшению.Пожалуйста, добавьте дополнительные очки.

Я опубликую дополнительный вопрос о периодическом включении данных в реальном времени.

...