我是一个R语言程序员。我也是一群被认为是数据科学家但来自CS以外的学术领域的人。
这在我作为数据科学家的角色中效果很好,但是,从R开始我的职业生涯,并且只对其他脚本/web语言有基本的知识,我觉得在两个关键的领域都有不足:
C、C++和Java )方面的竞争力水平,这些语言可以用来提高流水线和大数据计算的速度,以及创建DS/data产品,这些产品可以更容易地开发成快速的后端脚本或独立应用程序。当然,解决方案很简单--去学习编程,这就是我通过注册一些类(目前是C编程)所做的事情。
然而,现在我开始讨论上面的问题#1和#2,我不得不问自己“C和C++这样的数据科学语言有多可行?”
例如,我可以非常快地移动数据并与用户进行很好的交互,但是高级回归、机器学习、文本挖掘和其他更高级的统计操作怎么办?
所以。C能做这个工作吗?--有哪些工具可以用于高级统计、ML、AI和其他数据科学领域?或者我一定要因为调用C脚本或其他语言而丧失在R中编程所获得的大部分效率吗?
到目前为止,我在C中找到的最好的资源是一个名为鲨鱼的库,它使C/C++能够使用支持向量机、线性回归(不是非线性回归和其他高级回归,如多项式概率等)和其他(很好的)统计函数的候选列表。
发布于 2015-03-21 21:58:34
或者,我一定要因为调用R脚本或其他语言而丧失C语言编程所获得的大部分效率吗?
相反:学习C/C++来编写R扩展。只对新算法的性能关键部分使用C/C++,使用R构建分析、导入数据、绘制图表等。
如果您想超越R,我建议您学习Python。有许多可用的库,如用于机器学习算法的科学知识-学习或用于构建神经网络的PyBrain等(并使用pylab/matplotlib绘图,使用iPython笔记本开发您的分析)。同样,C/C++在实现作为Python扩展的时间关键算法方面也很有用。
发布于 2015-08-15 18:52:20
我同意当前的趋势是使用Python/R并将其绑定到一些C/C++扩展来执行计算开销较大的任务。
但是,如果您想留在C/C++中,您可能想看看德利卜:
Dlib是一个通用的跨平台C++库,它使用契约编程和现代C++技术设计.它是开源软件,并在Boost软件许可下获得许可。

发布于 2015-04-09 12:21:08
正如Andre所说,用C/C++扩展扩展R是利用双方优势的一个非常好的方法。此外,您还可以使用逆函数,使用C++和用RInside包o对R进行局部调用,在这里您可以找到
http://cran.r-project.org/web/packages/RInside/index.html http://dirk.eddelbuettel.com/code/rinside.html
一旦您在C++中工作,您就有了许多库,其中许多库都是为特定的问题构建的,还有一些更通用的库。
http://www.shogun-toolbox.org/page/features/ http://image.diku.dk/shark/sphinx_pages/build/html/index.html
http://mlpack.org/
https://datascience.stackexchange.com/questions/5357
复制相似问题