是否有任何理由更喜欢数据挖掘项目的函数式编程? [关闭]

Posted

技术标签:

【中文标题】是否有任何理由更喜欢数据挖掘项目的函数式编程? [关闭]【英文标题】:Is there any reason to prefer functional programming for data mining projects? [closed] 【发布时间】:2011-05-06 21:37:10 【问题描述】:

我正在研究启动一个数据挖掘项目的可能性,该项目将包括对数据的密集计算和转换,并且应该相对容易扩展。

根据您的经验,编程语言的选择对于上述项目来说至关重要吗?

例如,如果我已经在 J​​VM 环境中工作,我应该更喜欢 Clojure 而不是纯 Java 吗?功能环境是否保证更容易扩展?性能更好?

抛开对语言的熟悉程度、工具链等其他因素。根据您的经验,语言的选择是否至关重要?

【问题讨论】:

您“搁置”的因素至关重要。如果你只是为了这个项目开始学习 Clojure,你要么无法发挥它的优势——在这种情况下,你可以坚持使用例如Java - 否则会浪费太多时间,以至于这项任务必须非常棒才能弥补损失的时间。 【参考方案1】:

为数据挖掘项目选择函数式编程有几个很好的理由。

    通常是数据挖掘项目 涉及算法和数学 (比其他类型的系统) 可以更容易地表达为 函数式编程 数据 采矿项目将涉及 聚合函数 - 功能更好 编程,比如 Clojure 数据 采矿计划也将更多 适合并行性 - 绝对 数据并行性,甚至可以是 任务并行性,又是一个强项 函数式编程 和 Clojure 等函数式语言 无论如何都可以与java接口进行I/O、文件读写 我 认为可以学习工具链 容易地;它并没有那么不同,所以这不应该是一个因素。

我自己也问过同样的问题,并且对 Clojure 给出了一个很大的肯定 - 我仍在考虑如何将 R 包含在组合中。

【讨论】:

另外,数据挖掘操​​作可以看作是一个数据转换链,这是函数式编程语言非常擅长的。 看看 Incanter 与 R 类似,但在 Clojure 中。【参考方案2】:

使用您熟悉的最强大的语言。

无论如何,如果您想获得可扩展性,您需要一个 map-reduce 实现,它允许您并行化和收集结果。

【讨论】:

【参考方案3】:

没有特别的原因。选择你觉得最舒服的语言。

查看我对similar question about natural language processing 的回复。我认为人们认为晦涩难懂的语言适合 AI 的一些功能确实适得其反。

【讨论】:

“我认为人们认为晦涩难懂的语言适合 AI 的某些功能确实适得其反。” @missingfaktor:查看我链接到的答案。【参考方案4】:

通常,函数式编程解决方案更具可扩展性。

【讨论】:

更常见的是,它们不是。

以上是关于是否有任何理由更喜欢数据挖掘项目的函数式编程? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

对于更新不依赖于先前值的不可变集合,是不是有任何理由更喜欢 Interlocked 而不是 volatile?

Javascript 是函数式编程语言吗?

是否有任何理由使用 C 而不是 C++ 进行嵌入式开发? [关闭]

为什么我更喜欢函数式编程

函数式编程和非函数式编程

是否有任何理由将图像的通道顺序从 RGB 更改为 BGR?