Loading [MathJax]/extensions/tex2jax.js

пятница, 7 июля 2017 г.

Обзор фреймворков для машинного обучения на R

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

Ниже приводится сравнение этих фреймворков по шести самым важным, на мой взгляд, пунктам:
  1. Качество документации и примеров.
  2. Количество доступных моделей и способов оценки их качества, а также наличие алгоритмов для отбора признаков.
  3. Расширяемость / кастомизация.
  4. Возможность объединения в цепочку операций по подготовке данных (трансформация, импутация) с перекрестной проверкой / ресемплированием и самим обучением моделей.
  5. Реализация метаобучения (ансамбли моделей).
  6. Производительность.