Есть ли в Джулии родная библиотека для машинного обучения? - PullRequest
0 голосов
/ 09 октября 2019

Я начал использовать Julia. Я читал, что он быстрее, чем C. До сих пор я видел некоторые библиотеки, такие как KNET и Flux, но обе они предназначены для глубокого обучения. также есть команда "Pycall", которая использует Python внутри Julia.

Но меня тоже интересует машинное обучение. Поэтому я хотел бы использовать SVM, Random Forest, KNN, XGBoost и т. Д., Но в Julia.

Есть ли нативная библиотека, написанная в Julia для машинного обучения?

Спасибо

Ответы [ 2 ]

3 голосов
/ 10 октября 2019

Многие алгоритмы просто доступны с использованием выделенных пакетов. Например, BayesNets.jl

Для "классического машинного обучения" MLJ.jl , который представляет собой чистый фреймворк Julia Machine Learning, он написанИнститут Алана Тьюринга с очень активным развитием.

Для нейронных сетей Flux.jl - путь в Юлию. Также очень активен, готов к GPU и позволяет использовать все экзотические комбинации, которые существуют в экосистеме Julia, такие как DiffEqFlux.jl пакет, который объединяет Flux.jl и DifferentialEquations.jl.

Просто подождите Zygote.jl пакета автоматического разграничения от источника к источнику, который будет своего рода бэкендом для Flux.jl

Конечно,если вы более уверены в инструментах Python ML, у вас все еще есть TensorFlow.jl и ScikitLearn.jl , но OP запросил чистые пакеты Julia, а это всего лишь оболочки Julia пакетов Python.

1 голос
/ 15 октября 2019

Посмотрите на эту реализацию kNN и это для XGboost .

Существуют реализации SVM, но они устарели и не поддерживаются (поиск SVM .jl). Но, на самом деле, подумайте о других алгоритмах для улучшения качества предсказания и производительности построения модели. Взгляните на семейство алгоритмов OLS (ортогональные наименьшие квадраты) и OFR (ортогональная прямая регрессия). Вы легко найдете подробные описания алгоритмов, легко закодировать на любом подходящем языке. Тем не менее, в настоящее время нет реализации Julia, о которой я знаю. Я нашел только реализации Matlab и сделал свою собственную реализацию Java несколько лет назад. У меня есть планы перенести его в Юлию, но это в настоящее время не имеет приоритета и может продлиться несколько лет. Между тем - почему бы не написать код самостоятельно? Вы не найдете другого языка, упрощающего кодирование прототипа и превращение его в высокоэффективный производственный алгоритм, работающий с большой нагрузкой на GPGPU с поддержкой CUDA.

Я рекомендую эту совершенно новую публикацию, чтобы начать с: Нелинейная идентификация с использованием ортогональной прямой регрессии с вложенной оптимальной регуляризацией

...