【问题标题】:Is there a native library written in Julia for Machine Learning?是否有用 Julia 编写的用于机器学习的本地库?
【发布时间】:2019-10-09 15:50:46
【问题描述】:

我已经开始使用 Julia。我读到它比 C 更快。 到目前为止,我已经看到了一些库,如 KNET 和 Flux,但它们都是用于深度学习的。 还有一个命令“Pycall”你在 Julia 中使用 Python。

但我也对机器学习感兴趣。所以我想在 Julia 中使用 SVM、随机森林、KNN、XGBoost 等。

是否有用 Julia 编写的用于机器学习的本地库?

谢谢

【问题讨论】:

  • 深度学习是机器学习的一种,不是吗?
  • 顺便说一句,没有什么比 C 更快的了。但是 julia 经常接近,而且原则上可以一样快。很多人发现编程更好,更有效率。
  • 请按照您创建此帐户时的建议遵循帮助文档中的发布指南。 On topichow to ask 和 ...the perfect question 在此处申请。要求场外资源是特别离题的。
  • @MichaelK.Borregaard 这是一个普遍的想法,但不是真的。其他语言完全有可能比 C 更快。Julia 有时是,但我们通常会争取在 2 倍以内。在此处查看我们测得的所有语言都比 C 更快:julialang.org/benchmarks — Julia 、LuaJIT、Rust、Go 和 Fortran 在某些测试中都击败了 C。
  • @MattB。感谢您的澄清。我想知道它是如何工作的——因为编译器可以使用比 C 语言更高级的代码看到一些优化和分支的删除?我猜他们应该原则上都编译成相同的机器代码。

标签: machine-learning julia flux.jl


【解决方案1】:

许多算法都可以使用专用包直接使用。赞BayesNets.jl

对于“经典机器学习”MLJ.jl,它是一个纯 Julia 机器学习框架,由艾伦图灵研究所编写,开发非常活跃。

对于神经网络 Flux.jl 是 Julia 的必经之路。也非常活跃,GPU 就绪并允许 Julia 生态系统中存在的所有外来组合,例如 DiffEqFlux.jl 一个结合了 Flux.jl 和 DifferentialEquations.jl 的包。

等待Zygote.jl 一个源到源自动区分包,它将成为 Flux.jl 的某种后端

当然,如果您对 Python ML 工具更有信心,您仍然有 TensorFlow.jlScikitLearn.jl,但 OP 要求提供纯 Julia 包,而这些只是 Python 包的 Julia 包装器。

【讨论】:

    【解决方案2】:

    看看this kNN implementationthis for XGboost

    有 SVM 实现,但已过时且无人维护(搜索 SVM .jl)。但是,实际上,考虑其他算法以获得更好的预测质量和模型构建性能。查看 OLS(正交最小二乘)和 OFR(正交前向回归)算法系列。你会很容易找到详细的算法描述,很容易用任何合适的语言编写代码。但是,目前没有我知道的 Julia 实现。几年前,我只找到了 Matlab 实现并制作了自己的 java 实现。我有计划将它移植到 julia,但目前没有优先级,可能会持续几年。同时 - 为什么不自己编码?您找不到任何其他语言可以更轻松地编写原型并将其转变为高效的生产算法,在支持 CUDA 的 GPGPU 上运行繁重的负载。

    我推荐这个全新的出版物,首先是:Nonlinear identification using orthogonal forward regression with nested optimal regularization

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 2010-10-23
      相关资源
      最近更新 更多