我曾使用Matlab作为原型工具学习了一门机器学习课程。由于我对F#上瘾了,我想继续在F#中进行机器学习研究。
我可能希望使用F#进行原型设计和生产,因此一个机器学习框架将是一个很好的开始。否则,我可以从一组库开始:
- 高优化线性代数库
- 统计包
- 可视化库(允许绘制和与图表、图形等交互)
- 并行计算工具箱(类似于Matlab的并行计算工具箱)
对我来说最重要的资源是书籍、博客文章和关于在函数式编程语言(F#/OCaml/Haskell…)中进行机器学习的在线课程。
谁能推荐这些类型的资源?谢谢。
编辑:
这是基于以下回答的总结:
机器学习框架:
- Infer.NET:一个用于贝叶斯推断的.NET框架,在图形模型中具有良好的F#支持。
- WekaSharper:一个围绕流行数据挖掘框架Weka的F#包装器。
- Microsoft Sho:一个在.NET平台上进行数据分析(包括矩阵运算、优化和可视化)的持续环境开发工具。
相关库:
-
Math.NET Numerics:内部使用Intel MKL和AMD ACML进行矩阵运算,也支持统计功能。
-
Microsoft Solver Foundation:一个用于线性规划和优化任务的良好框架。
-
FSharpChart:一个在F#中的不错的数据可视化库。
阅读列表:
- 数值计算:对于在F#中开始机器学习非常有用,介绍了使用这些数学库的各种工具和技巧/窍门。
- F#和数据挖掘博客:也是由Yin Zhu撰写,他是数值计算章节的作者,强烈推荐。
- F#作为Octave/Matlab的机器学习替代品:Gustavo刚刚开始了一系列使用F#作为开发工具的博客文章。看到许多库被整合在一起真是太好了。
- “机器学习实践”的F#样本:Mathias已经将一些Python样本翻译成了F#。它们可以在Github上找到。
- Hal Daume的主页:Hal在OCaml中编写了许多机器学习库。如果您怀疑函数式编程不适合机器学习,这会让您感到安心。
欢迎其他任何指导或建议。
回答:
没有一个单一的地方可以查找关于F#和机器学习的资源,但这里有一些可能非常有用的链接:
-
数值计算部分在MSDN上是一个关于从F#使用各种数值库的好资源。最先进的库实现了线性代数和其他在机器学习中使用的算法是Math.NET Numerics。
-
数据可视化部分在MSDN上有一些关于在F#中进行图表绘制的资源。FSharpChart库现在由Carl Nolan维护,他定期在他的博客上发布更新。
还有一些正在研究相关主题的人的个人页面: