Язык R часто критикуют за отсутствие точной копии питоновской библиотеки для машинного обучения класса "все в одном" scikit-learn. Но страдать от отсутствия фреймворков не приходится – наоборот, есть совсем другая проблема. А именно: что выбрать из нескольких имеющихся в наличии библиотек (caret, mlr, h2o, pipelearner). Большинство из них отличаются от scikit-learn тем, что не содержат собственных реализаций алгоритмов машинного обучения, используя вместо этого реализации из сторонних пакетов. Это приводит к необходимости бороться с неодинаковыми интерфейсами функций для обучения моделей и предсказаний на их основе. К счастью, в caret и mlr эта задача успешно решена.
Ниже приводится сравнение этих фреймворков по шести самым важным, на мой взгляд, пунктам:
- Качество документации и примеров.
- Количество доступных моделей и способов оценки их качества, а также наличие алгоритмов для отбора признаков.
- Расширяемость / кастомизация.
- Возможность объединения в цепочку операций по подготовке данных (трансформация, импутация) с перекрестной проверкой / ресемплированием и самим обучением моделей.
- Реализация метаобучения (ансамбли моделей).
- Производительность.