Алгоритмы машинного обучения в рубине

Я следую классу Stanford Machine Learning с проф. Andrew Ng и я хотел бы начать реализацию примеров в ruby.

Существуют ли какие-либо фреймворки/gems/libs/существующий код, который подходит для машинного обучения в рубине? Я нашел несколько вопросов, связанных с этим и некоторыми проектами, но, похоже, довольно старый.

Ответ 1

Обязательно проверьте эту суть, в ней много информации:


Кроме того, ниже приведены некоторые заслуживающие внимания библиотеки алгоритмов (которые могут быть или не быть уже перечислены в сущности выше):

  • AI4R

    http://www.ai4r.org/ - https://github.com/SergioFierens/ai4r

    AI4R - это набор реализаций алгоритма ruby, охватывающий несколько областей искусственного интеллекта и простые практические примеры их использования. Рубиновая площадка для исследователей искусственного интеллекта. Он реализует:

    • Генетические алгоритмы

    • Самоорганизующиеся карты (SOM)

    • Нейронные сети: многослойный персептрон с обратным распространением, сеть Хопфилда.

    • Автоматические классификаторы (машинное обучение): ID3 (деревья решений), PRISM (J. Cendrowska, 1987), многослойный персептрон, OneR (правило одного атрибута AKA, 1R), ZeroR, гиперпипетки, наивный байесовский фильтр, IB1 (D. Aha, D. Киблер - 1991).

    • Кластеризация данных: K-средние, бисектирующие k-средние, одиночная связь, полная связь, средняя связь, средневзвешенная связь, связь по центроиду, медианная связь, связь по методу Уорда, Диана (разделительный анализ)

  • kmeans-clusterterer - кластеризация k-средних в Ruby:

    https://github.com/gbuesing/kmeans-clusterer

  • kmeans-clustering - простой гем Ruby для параллельной кластеризации k-средних:

    https://github.com/vaneyckt/kmeans-clustering

  • tlearn-rb - библиотека рекуррентных нейронных сетей для Ruby:

    https://github.com/josephwilk/tlearn-rb

  • Оболочка TensorFlow Ruby. На момент написания этой статьи, похоже, началась работа по созданию API-интерфейса TensorFlow Ruby:

    https://github.com/tensorflow/tensorflow/issues/50#issuecomment-216200945

Если JRuby является для вас жизнеспособной альтернативой Ruby:

  • weka-jruby - Машинное обучение и интеллектуальный анализ данных с помощью JRuby на основе библиотеки Java Weka:

    https://github.com/paulgoetze/weka-jruby

  • jruby_mahout - JRuby Mahout - это драгоценный камень, который раскрывает всю мощь Apache Mahout в мире JRuby:

    https://github.com/vasinov/jruby_mahout


ОБНОВЛЕНИЕ: приведенные выше ресурсы для машинного обучения в Ruby начинают обрабатываться в качестве хранилища: https://github.com/arbox/machine-learning-with-ruby.

Ответ 2

Алгоритмы сами по себе не зависят от языка. Вы можете реализовать их на любом языке. Для максимальной эффективности вы захотите использовать вычисления на основе матрицы/вектора.

Ruby имеет встроенный класс Matrix, который можно использовать для реализации этих алгоритмов. Реализация будет очень похожа на реализацию с помощью Octave. Все, что вам нужно для реализации алгоритмов самостоятельно, включено в базовую стандартную библиотеку для 1.9 +.

Octave используется, потому что он обеспечивает полную и удобную библиотеку Matrix.

Ответ 3

Румале https://github.com/yoshoku/rumale

Rumale - это библиотека машинного обучения, написанная на Ruby и поддерживающая следующий алгоритм.

Rumale поддерживает машину векторов поддержки линейного/ядра, логистическую регрессию, линейную регрессию, хребет, лассо, машину факторизации, наивный байесовский алгоритм, дерево решений, AdaBoost, случайный лес, классификатор K-ближайших соседей, K-средние, DBSCAN, анализ главных компонентов и Неотрицательная матричная факторизация.