TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Programming Languages for Machine Learning

67 点作者 ahalan超过 13 年前

8 条评论

jey超过 13 年前
This is a five year old post. These days Python is probably the way to go with NumPy, SciPy, Theano, IPython, matplotlib, Cython, etc. I'm also really looking forward to PyPy's NumPy support -- should allow you to write in pure Python code but still get most of the optimization benefits of writing in a statically typed compiled language like C++.
评论 #3242292 未加载
cbo超过 13 年前
This article doesn't really describe what the title implies. It states issues and concerns for several languages, names several that have large ML libraries written for them already, and even gives his own approach for how to implement new ML algorithms, but it doesn't actually give real options for "Programming Languages for Machine Learning".<p>I've found that Matlab/Octave is a decent substitute for a "high-level language" to sketch out new approaches with. They're significantly fast, as well as significantly suited to matrix algebra that they can give decent results, even though they have some less-than-beautiful code. Matlab appears to be the language of choice for AI at the University of Toronto.<p>Personally, I think the best option would be to roll with a functional language (or at least, a language with functions as first-class objects), since a lot of ML algorithms can be reduced to recursion on several matrices, often using very similar functions. For example, ANNs frequently have very similar structures and training strategies, but simply use different learning functions.<p>Everything can be done in C/C++ though, and while it'd be harder, ML is an area where the gain in speed and efficiency is so significant that extra development time pays boatloads in terms of ROI. Even basic ML examples often involve dealing with 300x236 dimensional data, so you can imagine how much that data would scale up significantly in production environments.
评论 #3242264 未加载
srean超过 13 年前
Given that there are many lisp aficionados here at HN, some may find lush <a href="http://lush.sourceforge.net/" rel="nofollow">http://lush.sourceforge.net/</a> quite interesting. Lush has been discussed at HN before but here is a short summary: You get lisp syntax, optimized multi-dimensional arrays, <i>extremely</i> easy integration with C code, common numerical optimization libraries, and the option of translating (and then compiling) lispy code into a C dynamic library.<p>The language features that the interpreter supports is subtly (and sometimes not so subtly) different from the compiled version though they share the same syntax.<p>In the context of scaling machine learning code you often hear that one should/could write most of it in matlab/octave and the critical parts in C. But anyone who has done it would know it is such a butt-hurting nuisance. In comparison the C integration is a pleasure in Lush.
djacobs超过 13 年前
We're using Matlab/Octave in the Stanford ML course, and it's certainly elegant but not necessarily comfortable for functional programmers. I'm reimplementing our assignments with Clojure/Incanter and am finding my code just as performant and even cleaner. In my opinion, the ML domain maps to Lisp code almost as well as AI as a whole.
评论 #3241948 未加载
评论 #3241882 未加载
评论 #3241571 未加载
评论 #3241986 未加载
purplebear超过 13 年前
I highly recommend to consider probabilistic languages, which constitute a natural framework for probabilistic reasoning and modelling. For example, have a look at this:<p><a href="http://research.microsoft.com/en-us/um/cambridge/projects/infernet/" rel="nofollow">http://research.microsoft.com/en-us/um/cambridge/projects/in...</a><p>or at this:<p><a href="http://projects.csail.mit.edu/church/wiki/Church" rel="nofollow">http://projects.csail.mit.edu/church/wiki/Church</a><p>Have a great day!
sramsay超过 13 年前
Considering what happened to Lisp when machine learning was called AI, I'm not sure I'd want my language to win this contest. ;)
评论 #3241973 未加载
cageface超过 13 年前
Scala doesn't have great native libraries for this but otherwise I've found it a very good language for basic ML stuff. You can express the algorithms very succinctly and readably but still get good performance.
评论 #3242229 未加载
评论 #3244183 未加载
评论 #3242792 未加载
the_cat_kittles超过 13 年前
scikits.learn, pyMC, scipy, numpy, milk and more in python make a pretty formidable toolkit, R is also (probably more powerful, albeit awkward) excellent! Who needs to read a huge article...