Comments 3
Еще бы сравнение с существующими инструментами, особенно по части производительности.
Коду в статье очень не хватает развернутых комментариев (например, что такое tree). И выравнивания. На момент написания комментария код очень трудно читать.
Ссылка на список алгоритмов была в 1-ой части, но вот Userguide, где в оглавлении можно о нём почитать.
Строго говоря, код, в отрыве от кода по примеру из первой части, вообще не будет рабочим. "tree" — произвольное название переменной, объекта-дерева хранящего значения скор.балла, которые будет принимать классифицируемые объекты из текстового файла.
Здесь более валидный пример кода, мой вариант "примерочный", но думаю лучше будет мне добавить линк с рабочим примером, если с сайта разработки что-то будет не понятно. Про описание классов следует читать в userguide, ибо описать их в рамках статейки будет избыточно.
Про архитектуру вопрос широкий, можно почитать обзор в википедии, либо на официальном сайте. По опыту, в ROOT реализовано немало крутых алгоритмов для работы с объектами: логарифмически быстрый поиск по множествам "сцепленных" root-файлов, с помощью класса TChain и пр.
А TMVA — это лишь автономная библиотека алгоритмов машинного обучения "с учителем", также написанная на С++. Макросы в TMVA лучше использовать для каких-то не очень больших объёмов данных (NB:10 млн.строк и 15 столбцов), для прототипирования производительность удовлетворительная, но если нужно обработать очень много данных, да ещё и классифицировать с помощью алгоритмически сложного SVM со временем исполнения между O(n^2) и O(n^3), то нужно вносить изменения и компилировать код. О том, какая производительность у программ на C++ Вам известно, вероятно.
Машинное обучение с помощью TMVA. Reader модели