В настоящее время работает в Octave, но из-за плохой документации прогресс очень медленный.
Какой язык прост в изучении и использовании и хорошо документирован для решения проблем машинного обучения? Я ищу прототип на небольшом наборе данных (тысячи примеров), поэтому скорость не важна.
РЕДАКТИРОВАТЬ: я разрабатываю механизм рекомендации. Итак, я заинтересован в использовании Регулярной линейной регрессии, нейронных сетей, SVN или совместной фильтрации.
Ответы:
Если вы хотите использовать что-то из коробки, Weka может стать отличной отправной точкой. Нет необходимости программировать что-либо. Вы импортируете свои данные, визуализируете их и играете с разными моделями.
Следующим в цепочке будет R. С этим связана некоторая кривая обучения, особенно когда вы объединяете ваши данные с тем, чтобы вписаться в структуры данных R, но как только вы преодолеете это, у вас будет множество библиотек, которые предлагают все возможности машинного обучения без особых усилий.
Следующим шагом будет ручное программирование алгоритмов машинного обучения. Поскольку вы уже используете Octave и ищете альтернативы, возможно, вам нужно не использовать алгоритмы кода в какой-либо другой системе, а просто использовать библиотеки, написанные другими людьми.
Если вы пойдете по пути R, вы можете найти книгу Луиса Торго (Data Mining with R: Learning with Case Studies) очень полезной (раскрытие: нет принадлежности). В нем подробно описываются тематические исследования, которые вы можете адаптировать к вашей проблеме.
источник
Вы можете получить лучшие ответы, если укажете конкретные алгоритмы, которые вас интересуют. Я использую R для такого рода вещей (хотя я делаю эконометрику временных рядов, но не машинное обучение); Вы можете увидеть существующую функциональность здесь:
http://cran.r-project.org/web/views/MachineLearning.html
и есть код R для реализации анализа в Элементах статистического обучения Хасти, Тибширани и Фридмана :
http://www-stat.stanford.edu/~tibs/ElemStatLearn/
Система упаковки R довольно хороша и подталкивает людей к документированию их кода, и это с открытым исходным кодом, так что вы всегда можете посмотреть на реализацию. Я не использовал Matlab в течение нескольких лет и не использовал его для большого машинного обучения - их наборы инструментов, как правило, хорошо документированы, но могут быть дорогими, но пользовательский код будет так же плохо документирован, как и любой другой.
источник
В своем онлайн-курсе по машинному обучению Эндрю Нг предлагает использовать Octave / Matlab.
Я рекомендую вам записаться на следующий выпуск этого курса: он действительно полезен, и вы узнаете много нового об Octave и о различных алгоритмах машинного обучения.
РЕДАКТИРОВАТЬ 1 : Я согласен с другими людьми, которые предпочитают работать в R. Тем не менее, при решении проблем машинного обучения большинство ваших вычислений будут в матричной форме, и, как указывают @Wayne, Matlab или Octave, языки очень популярны. из-за их силы. Возможно, вы захотите взглянуть на решения для курсовых упражнений, предлагаемых другими студентами; Конечно, вы можете узнать некоторые вещи из них:
Gkokaisel Github
Мерван Гитхуб
источник
t(A) %*% B
менее интуитивны, чем в Matlab.Scikit-Learn (теперь
sklearn
) должны соответствовать несколько критериев , описанных вами (скорость, хорошо разработанные классы для обработки данных, модели и результаты), в том числе целевых приложений (L1 / L2 нарушает регрессии, SVM, и т.д.). Он поставляется с богатым набором документации и множеством примеров . См. Также его описание в статье, опубликованной в JMLR.Альтернативный фреймворк в Python - это Orange , который можно использовать через простой графический интерфейс или напрямую из командной строки. Для совместной фильтрации может быть интересен pyrsvd , но я никогда не пробовал. Тем не менее, Apache Mahout, безусловно, может быть использован для совместной фильтрации .
источник
Если вы ссылаетесь на промышленный прототип (то есть то, что сделано для использования реальными людьми, а не для чистых исследований), то на данный момент Python - единственный путь.
Если вы используете Matlab, Octave или R, вы получаете простую в использовании среду для исследования ML, но это будет кошмаром, когда модель будет работать с пользовательским интерфейсом или веб-сервисом.
В Python нам повезло иметь как обширную научную экосистему ( sklearn для ML, pandas для переноса данных, matplotlib / seaborn для визуализации), так и экосистему приложений (подумайте о django и его остальной среде ).
Python это простой язык для изучения. Я надеюсь, что в будущем экосистема Javascript станет научно обоснованной, как экосистема Python, но, несмотря на некоторые замечательные проекты, я не ожидаю, что она скоро появится.
Не заворачивайся в коробку, используй общий язык!
источник