ref: http://blog.jobbole.com/56256/ 这个大赞。
ref:http://suanfazu.com/discussion/109/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%BB%8F%E5%85%B8%E4%B9%A6%E7%B1%8D/p1
这个网站看起来不错。
============================
ref: http://www.zhihu.com/question/20691338
Mitchell的机器学习书是懂的部分你不需要看 不懂的地方看不懂
PRML入门挺好的,主要是数学讲的细,循序渐进。如果lz数学底子好可以直接上pattern classification,这本书主要是有翻译的,是个优点,但偏老了些。
顺便吐槽说PRML不适合本科生的,现在哪个机器学习实验室入门不是看PRML或者pattern classification啊,大一到大三进实验室都得乖乖看这两本。基础打扎实了到大四再分具体方向看Probabilistic Graphical Models这些进阶书。
----------------------------
题主既然是初学者,就要从简单入手。而大学本科的概率论线性代数对于基本的入手已经足够了。Andrew Ng的课非常好,值得去学一学,网上的资料也特别多,比如这个:Machine Learning,写得很详细。如果题主英文水平有限,那可以看一些中文书籍入门。
入门之后,对常用算法有了基本了解之后,就可以多学一些原理性知识了,比如统计理论、矩阵理论、信号处理、分布式计算等等。这时排名第一的答案才比较有用。
==========================
ref: http://www.zhihu.com/question/20216472
Python在这方面的package非常齐全:
网页爬虫: scrapy(不太清楚)
数据挖掘: numpy, scipy, matplotlib, pandas(头三个是业界标准,第四个模拟R)
机器学习: scikit-learn, libsvm(极好)
自然语言处理: nltk(极好)
----------------------
python在网页爬虫、数据挖掘、机器学习和自然语言处理领域的应用情况如何?
Python的快速迭代能力让它收到青睐。按照楼主的问题一个个回答,结合我有限的经验:
1)爬虫Scrapy,简单易用。用rq-queue结合的话很容易构造一个分布式的爬虫。我曾经这样爬下了整个豆瓣的好友关系图。
2)数据挖掘里常用的算法python里都有实现。肖智博提到的scikit learn可谓翘楚。不仅文档清晰,且几乎需要常用的算法均有实现。我们用scikit learn做了一个evemt detection的系统。整个系统用python写成,机器学习部分用python
3)nlp部分不是特别了解。nltk很普遍的被很多大学课程用到。
企业里:
据我所知公司里的使用情况
google:爬虫C++,数据挖掘C++,nlp C++。python用来处理数据。
twitter:所有服务均用java和scala,python用来写快速迭代的工具。比如说做搜索引擎的算法的同事写了一个python客户端用于内部测试搜索质量,我自己用py写好了一个搜索词推荐系统,包括接口,算法和界面,通过测试后改写成java。
一点感想:
py强项在于,其他语言几百句做的事情py可以几十行,帮助开发者专注问题。而且综上各种工具包齐备,没有人会花时间写个svm(还要保证不写错)。但是py有个巨大的缺点,仍然是,慢。有人会说,算法优化才重要,常数优化没必要。但是现实状况是,大家都是在做常数优化,因为假设算法优化得下来,设计阶段就优化好了,这也是为什么在twitter把py译成java的原因。
但是总的来说,即使用py开发完毕再译,也比直接用java来写来测快速得多。
==============================================
ref:http://www.zhihu.com/question/21434140
我的研究内容是Pattern Recognition and Machine Learning。从我的角度来说说常用的论文资源来源。
常关注的期刊:
IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI)
IEEE Transactions on Neural Networks
IEEE Transactions on Knowledge and Data Engineering
Journal of Machine Learning Research
Machine Learning (ML), springer
会议:
IEEE Conference on Computer Vision and Pattern Recognition (CVPR)
International Conference on Machine Learning (ICML)
European Conference on Machine Learning (ECML)
AAAI Conferences
Neural Information Processing Systems (NIPS)
搜索论文的网址:
IEEE Xplore - Home
http://www.sciencedirect.com/
Springer - International Publisher Science, Technology, Medicine
Google Scholar
其实大部分时候,还是根据自己的研究方向,google scholar关键词搜索相关论文。如果论文是发表在上述期刊或者会议中,可能质量会比较好,更重视些。
---------------
机器学习细分也很广的。
不知道题主是新开学的研究生博士生,还是只是对机器学习感兴趣想要了解一二的工程师。
如果是后者,可以上coursera上看看机器学习相关的公开课。
可以看一些机器学习的教科书,例如《Pattern Recognition and Machine Learning》,《Foundation of Machine Learning》。
网易公开课早就有andrew NG机器学习课的中文版,入门已经很好了。
当然其他学校也有不少公开的资料。
龙星计划-机器学习
Courses on machine learning
Machine Learning Surveys
Statistical Data Mining Tutorials
也可以平时上微博上关注一些机器学习领域比较活跃的人。
如果是前者,首先要确定方向,然后再找相关。这个得跟老板商量,盲目地瞎看很难看出什么来。
确定方向之后,可以找相关会议期刊的论文,也可以让老师推荐一篇种子论文开始看,也可以follow一些大牛的工作。
论文一般都是发表在会议或期刊上。
机器学习相关的会议期刊很多,好的会就那么几个,也可以去找人工智能的方向。
身为中国的学生,我更关注中国计算机学会的会议推荐排名。
CCF推荐排名
看里面数据挖掘人工智能模式识别板块列出的会议不少是机器学习相关。排名仅供参考。
可以和楼上各位回答中的会议名对照。
到会议的主页,找accepted paper,里面会列出接受的论文。
会议有的一年一开,有的两年一开,搜会议主页要带年份搜。
除去研究相关,如果对机器学习数据挖掘的其它领域现状感兴趣,就去看看近年,尤其是今年相关会议的发表论文。。
大部分的好会议期刊都是ACM或IEEE出版的,少数springer和其它出版社。ACM和IEEE的都有自己的数据库,都可以下载pdf(前提是在高校用高校账户登录)。搜论文标题一般前几个链接里就有ACM和IEEE页面的链接。如果不是ACM和IEEE的,google标题,一般都能在Google Scholar里找到pdf。
如果老师给你推荐一篇种子论文,你最好从这篇论文开始,看他引用的其它论文,从里面引用次数最多的论文开始看起,这一般都是一个小方向的奠基作品,更靠谱。然后从引用的论文找他们引用的论文,展开一张网。
比如说经常某一个作者的论文,可能这个人很厉害,那么就可以follow这个人的工作。
可以找作者的大学首页,如果有的话,里面一般会列出不少资料,包括publication和一些数据,不少人会附上pdf。
如果是个没有主页的phd学生,找他的老板。
也可以找dblp,直接google搜,作者名加dblp,这是个数据库列出发表的论文标题,不过没有pdf,知道标题再去搜。
例如Michael I Jordan的dblp:
dblp: Michael I. Jordan
当然也可以google scholar直接搜作者名。----
----------------------
1. 如果只是想应用,并不想研究,参考机器学习和模式识别的经典书目就可以了。可以百度:机器学习 模式识别 经典书籍。或是根据项目具体需求,直接搜索最相关的论文参考,这个论文发在什么杂志上往往并不是最重要的,因为真正管用的方法并不一定就能发表在相关领域最好的杂志上。
2. 如果是想从事机器学习和数据有关的研究工作,这个就要注意文献的选择,读什么的样文献往往决定了你以后从事什么层次的研究。
期刊:
Journal of Machine Learning Research (JMLR) (理论+应用)
IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI) (应用)
Machine Learning (偏理论,不推荐 )。注:不推荐不代表没有用或是不重要。
会议:
COLT、SODA (理论,不推荐)
ICML、NIPS (理论+应用)
CVPR(应用)。其它的会还有 KDD,ICDM,IJCAI, AISTATS,UAI,AAAI,ECML等等。
如果还包括机器视觉,就再加上:
International Journal of Computer Vision
IEEE Transactions on Image Processing
ICCV,ECCV。
这方面的会议和期刊都比较多,一定要挑最好的看,从事相关研究工作,一定要紧紧盯住会议的最新进展,顶级会议的论文代表了国际上最新、水平最高的学术进展。并不是每一篇顶级会议的论文水平都很高,但是水平很高的一般都会首先出现在会议上。如果要更专注一点,JMLR、TPAMI、ICML、NIPS、CVPR就够了。如果是学生,还可以看一些学术大牛们的公开课程。国内有些学校对于期刊和会议的等级分类和国际上出入比较大,一定要以国际学术界大家都认可的真实的档次为标准,这样更有利于你把握学术研究进展。
-----------------------
一般上都是大牛的博客或者主页, 就是大学里面的机器学习团队的主页了:
The Ideal Large Scale Learning Class « Machine Learning (Theory)
Workshop on Algorithms for Modern Massive Data Sets (MMDS)
courses:bigdata:slides:start
Cambridge Machine Learning Group Publications
更多的时候,根据wiki,然后去看wiki下面推荐的论文。
=========================
ref: http://www.zhihu.com/question/22221180
什么叫应该看呢?不同的人,应该看不同的书,我可以这样理解不?
对于想入门了解机器学习的,注意这里是机器学习,不是数据挖掘、数据分析哟,那么Mitchell的<机器学习>是经典的入门之作。当然,因为年代久远,很多新的模型都没有涉及到,但不影响他的经典性——入门级。
对于程序员,想快速了解模型流程和优缺点的,甚至是实现模型的,那么<machine learning in action>是我比较推荐的,现在已经有中文版了<机器学习实战>。这本书,提到了很多常见的模型,开始就是模型背景简介,之后是模型优缺点和应用场景、在接着算法实现和案例。而且,在书的最后,提及了一些比较切合时代的话题——大数据下机器学习。
对于想从事机器学习的入门人员,比较推荐一本有中文版的<机器学习基础>(Simon Rogers的,英国格拉斯哥大学计算机科学学院讲师),这本书适合高年级本科生和研究生。从理论的角度,推导了各个算法,以及探究了各个模型的特性等。涉及数学和矩阵的地方,都有详细的参照。适合高端点的入门,看这本书,可以体会一下自己的数学和矩阵,有种必须要加强的感觉。
对于统计专业的同学,我还是比较推荐统计学习的,统计学习与机器学习有很多相似的地方,但是机器学习更强调大规模应用和预测的准确性,而统计学习则很强调预测的精度和不确定性。然而,两者之间的差异性越来越模糊了,机器学习在市场上占上风。统计学习方面,李航的<统计学习>一直很受国内欢迎,但是如果英语比较好的话,可以<the element of statistical learning>,如果是偏应用的话,那么用r语言做统计学习的书<An Introduction to Statistical Learning with Applications in R>是不二之选(本书也是斯坦福的统计学习课程教材,均可以免费下载,自行谷歌)。
对于已经有了一定的数学基础的童鞋,我推荐的书是经典的经典——<PRML>,我就不翻译了。这本书,全面而详细的介绍并厘清了各个模型。当然,我还在研读本书,简单的附上内容里的两句话<Probability theory provides a framework for expressing such uncertainty in a precise and quantitative manner, and decision theory allows us to exploit this probabilistic representation in order to make predictions that are optimal according to appropriate criteria.概率理论提供了用精度和量化的方法来描述随机现象,而决策理论则使我们能够根据概率做出适当预测。>——模型,不都这个样子吗?
对于,大神级别的,那还读什么书啊,都是看最新的paper了吧。
最后,这些书都只是一部分,很多时候都是要根据自己的目标和定位去做选择的。你只是看书的话,效果可能一般,建议你上一些公开课,比如Andrew Ng的machine learning,斯坦福的statistical learning等等,可以去coursera、网易公开课、edx上搜一下。当然,你可以直接去斯坦福或者哈佛的官网,看看学校是否有公开课,跟着学一下。
============================
ref:http://www.zhihu.com/question/20472776
竟然没有人提scikit.learn !!!!!!!!!!
震惊过后好好说话吧,其实语言什么的都不是主要的。
首先推荐一个大而全的网站 http://mloss.org,这个网站搜集了非常多的机器学习包,几乎涵盖了你听过的所有语言。
如果你是用python的话,那么numpy, scipy, matplotlib是基础的,然后就是大名鼎鼎的scikit.learn了。最近pandas也很火,可以提供类似R中dataframe的数据结构,pandas的作者 最近出版了一本书 Python for Data Analysis。
如果你想追求速度,那么可以考虑Cython和PyPy。
Anyhow,Python是一门很灵活的语言,很多基于C和C++的包也提供了python接口(比如shogun)
==============================
ref:http://www.zhihu.com/question/19695591
A sponsored advertisement:
百度
淘宝
以及各家搜索公司
B behavior based advertisement:
腾讯
C 站内商品推荐:
淘宝
当当
C 兴趣推荐:
豆瓣
优酷
D 关系挖掘
人人
腾讯
- 高等代数。注意,不是线性代数,如果你想做serious的机器学习,那么面向理工科的线性代数是不够用的,至少在看证明,以及自己想证明什么的时候。
- 数学分析
- 概率论
- 统计学。这里分开说是因为普通高校用的那本教材太集大成了,等你看算法的时候,就会发现当年书上有而老师没讲甚至书上没写的正是你要用的。当然如果书上写的你都不看就没有什么搞头了。
- 矩阵论
- 集合论
- 实变函数,泛函分析。这两门课写在这里是因为或多或少在分析算法的时候会用到,但是不会非常多。
计算机编程的相关内容,请参见:http://www.zhihu.com/question/19882915/answer/13244009--Update @ 2012.01.04
刚刚看到Matt Might对程序员的12点新年祝愿 http://matt.might.net/articles/programmers-resolutions/
抄录里面关于数学的内容
At its heart, computer science is a mathematical discipline.
Good mathematicians make good programmers.
Do not let your mathematical faculty wither.
Consider an annual one-month brush-up on one of these topics:
- Logic.
- Discrete mathematics.
- Calculus.
- Probability.
- Statistics.
- Abstract algebra.
- Number theory.
- Category theory.
- Order theory.
机器学习不是单纯的一门计算机课程,想要学好机器学习,用好机器学习,数学是多多益善的。