在 F# 中使用机器学习的资源 [关闭]

Posted

技术标签:

【中文标题】在 F# 中使用机器学习的资源 [关闭]【英文标题】:Resources for working with Machine Learning in F# [closed] 【发布时间】:2011-12-25 11:10:12 【问题描述】:

我学习了使用 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# 数据可视化库。

阅读清单:

Numerical Computing:非常适合从 F# 中的机器学习开始,并介绍了在 F# 中使用这些数学库的各种工具和提示/技巧。 F# and Data Mining blog:也是《数值计算》一章作者朱印,强烈推荐。 F# as a Octave/Matlab replacement for Machine Learning:Gustavo 刚刚开始了一系列使用 F# 作为开发工具的博客文章。很高兴看到许多库被集成在一起。 "Machine Learning in Action" 's samples in F#: Mathias 已将一些示例从 Python 翻译成 F#。它们在Github 中可用。 Hal Daume's homepage:Hal 用 OCaml 编写了许多机器学习库。如果您怀疑函数式编程不适合机器学习,您会感到宽慰。

也欢迎任何其他的指点或建议。

【问题讨论】:

【参考方案1】:

没有一个地方可以查找有关 F# 和机器学习的资源,但这里有几个可能非常有用的链接:

MSDN 上的Numerical Computing 部分是有关使用 F# 中的各种数值库的好资源。实现线性代数和其他机器学习有用算法的***库是Math.NET Numerics。

MSDN 上的Visualizing Data 部分有一些关于 F# 图表的资源。 FSharpChart 库现在由定期发布 updates to his blog 的 Carl Nolan 维护。

还有一些从事相关主题工作的人的个人页面:

Jurgen van Gael(曾获得机器学习博士学位)为 Math.NET 库做出了贡献,您可以阅读 his experience here。

在 MSDN 上撰写数值计算章节的朱印(并且是一名对机器学习感兴趣的博士生)有不少excellent articles on his blog。

【讨论】:

【参考方案2】:

除了 Tomas 提到的,我在大约一年前花了一些时间在 Infer.NET 上,发现它对于连续图形模型非常有用。我知道它在库的范围和 F# 支持方面比去年有了很大的改进。我建议检查一下,看看它是否有你需要的东西。

【讨论】:

Infer.NET 前景广阔。 Don 最近的博客文章为 Infer.NET 团队发布了招聘广告,该团队正在招聘一名优秀的工程师来进一步推动这个项目。 我希望这意味着他们也会更改许可。现在它除了原型设计之外还没有真正用处。 是的,InferNet 和 Sho 都是很棒的套件,但被非商业性许可所淘汰 许可证是 sh*t。除了玩弄,不能使用它。实际上,许可风险是大多数 MSFT 解决方案的主要问题。【参考方案3】:

Hal Daume 在 OCaml 和 Haskell 中实现了许多机器学习算法。详情见我在Machine learning in OCaml or Haskell?的回答

除了 MSDN 上的 Numerical Computing in F# 书籍章节之外,我还想推荐我的 Wrapper for Weka,WekaSharper。它允许您使用 F# 友好的界面在 Weka 中调用机器学习算法。

我写了一篇文章,Why F# is the language for data mining,它反映了我在用 F# 编写完一个类似于 alpha/prototype 的数据挖掘包时的想法。 libml 可在线获取。但是代码是大约两年前我开始使用 F# 时编写的,从那时起我就没有时间维护它了。

【讨论】:

感谢有关 WekaSharper 的新闻。我已经阅读了你所有关于 F# 和数据挖掘的博客文章,它们对初学者非常有帮助。继续写好博客:)。【参考方案4】:

APress 有一本即将发布的“Alpha”书:面向 .NET 开发人员的机器学习项目。 http://www.apress.com/9781430267676

目前存在的内容似乎是介绍性的,但非常值得学习,其代码示例主要是 F#。

【讨论】:

以上是关于在 F# 中使用机器学习的资源 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

机器学习可行性分析

为什么在使用python代码的机器学习中需要输出softmax概率? [关闭]

使用机器学习的作者归属 [关闭]

机器学习实践指南:案例应用解析(第二版)

使用 Hadoop 的机器学习框架 [关闭]

如何在机器学习中赋予文本作为特征和价值? [关闭]