右图是事朱凯 门头沟妈妈的茶杯示意图 这支茶杯占据桌面的面积是

大数据有两个方向,一个是偏计算机的,另一个是偏经济的。你学过Java,所以你可以偏将计算机&br&&br&基础&br&1. 读书《Introduction to Data Mining》,这本书很浅显易懂,没有复杂高深的公式,很合适入门的人。&br&另外可以用这本书做参考《Data Mining : Concepts and Techniques》。第二本比较厚,也多了一些数据仓库方面的知识。&br&如果对算法比较喜欢,可以再阅读《Introduction to Machine Learning》。&br&当然,还有《机器学习:实用案例解析》&br&&br&2. 实现经典算法。有几个部分:&br&a. 关联规则挖掘 (Apriori, FPTree, etc.)&br&b. 分类 (C4.5, KNN, Logistic Regression, SVM, etc.)&br&c. 聚类 (Kmeans, DBScan, Spectral Clustering, etc.)&br&d. 降维 (PCA, LDA, etc.)&br&e. 推荐系统 (基于内容的推荐,协同过滤,如矩阵分解等)&br&然后在公开数据集上测试,看实现的效果。可以在下面的网站找到大量的公开数据集:&a href=&http://archive.ics.uci.edu/ml& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&UCI Machine Learning Repository&i class=&icon-external&&&/i&&/a&/&br&&br&3. 熟悉几个开源的工具: Weka (用于上手); LibSVM, scikit-learn, Shogun&br&&br&4. 到 &a href=&/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Kaggle: Go from Big Data to Big Analytics&i class=&icon-external&&&/i&&/a&/ 上参加几个101的比赛,学会如何将一个问题抽象成模型,并从原始数据中构建有效的特征 (Feature Engineering). &br&&br&到这一步的话基本几个国内的大公司都会给你面试的机会。&br&&br&进阶篇:&br&&br&1. 读书,下面几部都是大部头,但学完进步非常大。&br&a.《Pattern Recognition and Machine Learning》&br&b.《The Elements of Statistical Learning》&br&c.《Machine Learning: A Probabilistic Perspective》&br&第一本比较偏Bayesian;第二本比较偏Frequentist;第三本在两者之间,但我觉得跟第一本差不多,不过加了不少新内容。当然除了这几本大而全的,还有很多介绍不同领域的书,例如《Boosting Foundations and Algorithms》,《Probabilistic Graphical Models Principles and Techniques》;以及理论一些的《Foundations of Machine Learning》,《Optimization for Machine Learning》等等。这些书的课后习题也非常有用,做了才会在自己写Paper的时候推公式。&br&&br&2. 读论文。包括几个相关会议:KDD,ICML,NIPS,IJCAI,AAAI,WWW,SIGIR,ICDM;以及几个相关的期刊:TKDD,TKDE,JMLR,PAMI等。跟踪新技术跟新的热点问题。当然,如果做相关research,这一步是必须的。例如我们组的风格就是上半年读Paper,暑假找问题,秋天做实验,春节左右写/投论文。&br&&br&3. 跟踪热点问题。例如最近几年的Recommendation System,Social Network,Behavior Targeting等等,很多公司的业务都会涉及这些方面。以及一些热点技术,例如现在很火的Deep Learning。&br&&br&4. 学习大规模并行计算的技术,例如MapReduce、MPI,GPU Computing。基本每个大公司都会用到这些技术,因为现实的数据量非常大,基本都是在计算集群上实现的。&br&&br&5. 参加实际的数据挖掘的竞赛,例如KDDCUP,或 &a href=&/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Kaggle: Go from Big Data to Big Analytics&i class=&icon-external&&&/i&&/a&/ 上面的竞赛。这个过程会训练你如何在一个短的时间内解决一个实际的问题,并熟悉整个数据挖掘项目的全过程。&br&&br&6. 参与一个开源项目,如上面提到的Shogun或scikit-learn还有Apache的Mahout,或为一些流行算法提供更加有效快速的实现,例如实现一个Map/Reduce平台下的SVM。这也是锻炼Coding的能力。(转)
大数据有两个方向,一个是偏计算机的,另一个是偏经济的。你学过Java,所以你可以偏将计算机基础1. 读书《Introduction to Data Mining》,这本书很浅显易懂,没有复杂高深的公式,很合适入门的人。另外可以用这本书做参考《Data Mining : Concepts and Tec…
我了解到的(不一定对):&br&A sponsored advertisement:&br&百度&br&淘宝&br&以及各家搜索公司&br&B behavior based advertisement:&br&腾讯&br&C 站内商品推荐:&br&淘宝&br&当当&br&C 兴趣推荐:&br&豆瓣&br&优酷&br&D 关系挖掘&br&人人&br&腾讯
我了解到的(不一定对):A sponsored advertisement:百度淘宝以及各家搜索公司B behavior based advertisement:腾讯C 站内商品推荐:淘宝当当C 兴趣推荐:豆瓣优酷D 关系挖掘人人腾讯
搬运工,看到一篇关于算法学习之路的总结,希望对你有帮助。&br&原文链接:&a href=&http://zh.lucida.me/blog/on-learning-algorithms/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&zh.lucida.me/blog/on-le&/span&&span class=&invisible&&arning-algorithms/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&&b&我的算法学习之路&/b&&br&MAY 4TH, 2014 | COMMENTS
&br&关于&br&&br&严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的。&br&&br&原文作者:Lucida&br&&br&&b&这篇文章讲了什么?&br&&br&&/b&&ol&&li&&b&我这些年学习数据结构和算法的总结。&br&&/b&&/li&&li&&b&一些不错的算法书籍和教程。&br&&/b&&/li&&li&&b&算法的重要性。&/b&&br&&/li&&/ol&&b&初学&/b&&br&&br&第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门——当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——反正最后考试划个重点也能过,于是这门整个计算机专业本科最重要的课程就被傻逼的我直接忽略过去了。&br&&br&直到大三我才反应过来以后还要找工作——而且大二的折腾证明了我并没有什么商业才能,以后还是得靠码代码混饭吃,我当时惊恐的发现自己对编程序几乎一无所知,于是我给自己制订了一个类似于建国初期五年计划的读书成长计划,其中包括C语言基础、数据结构以及计算机网络等方面的书籍。&br&&br&读书计划的第一步是选择书籍,我曾向当时我觉得很牛的”学长”和”大神”请教应该读哪些算法书籍,”学长”们均推荐算法导论,还有几个”大神”推荐计算机程序设计艺术(现在我疑心他们是否翻过这些书),草草的翻了下这两本书发现实在看不懂,但幸运的是我在无意中发现了豆瓣这个神奇的网站,里面有很多质量不错的书评,于是我就把评价很高而且看上去不那么吓人的计算机书籍都买了下来——事实证明豆瓣要比这些”学长”或是”大神”靠谱的多得多。&br&&br&&b&数据结构与算法分析——C语言描述&/b&&br&&img src=&/789b79bad004d6d5de9aed7_b.jpg& data-rawwidth=&409& data-rawheight=&575& class=&content_image& width=&409&&&br&数据结构与算法分析——C语言描述是我学习数据结构的第一本书:当时有很多地方看不懂,于是做记号反复看;代码看不明白,于是抄到本子上反复研读;一些算法想不通,就把它所有的中间状态全画出来然后反复推演。事实证明尽管这种学习方法看起来傻逼而且效率很低,但对于当时同样傻逼的我却效果不错——傻人用傻办法嘛,而且这本书的课后题大多都是经典的面试题目,以至于日后我看到编程之美的第一反应就是这货的题目不全是抄别人的么。&br&&br&至今记得,这本书为了说明算法是多么重要,在开篇就拿最大子序列和作为例子,一路把复杂度从O(N3)杀到O(N2)再到O(NlgN)最后到O(N),当时内心真的是景仰之情=如滔滔江水连绵不绝,尼玛为何可以这么屌,&br&&br&此外,我当时还把这本书里图算法之前的数据结构全手打了一遍,后来找实习还颇为自得的把这件事放到简历里,现在想想真是傻逼无极限。&br&&br&凭借这个读书成长计划中学到的知识,我总算比较顺利的找到了一份实习工作,这是后话。&br&&br&&b&入门&/b&&br&&br&我的实习并没有用到什么算法(现在看来就是不停的堆砌已有的API,编写一堆自己都不知道对不对的代码而已),在发现身边的人工作了几年却还在和我做同样的事情之后,我开始越来越不安。尽管当时我对自己没什么规划,但我清楚这绝壁不是我想做的工作。&br&&br&&b&微软的梦工厂&/b&&br&&img src=&/d_b.jpg& data-rawwidth=&214& data-rawheight=&300& class=&content_image& width=&214&&&br&在这个摇摆不定的时刻,微软的梦工场成了压倒骆驼的最后一支稻草,这本书对微软亚洲研究院的描写让我下定了”找工作就要这样的公司”的决心,然而我又悲观的发现无论是以我当时的能力还是文凭,都无法达到微软亚研院的要求,矛盾之下,我彻底推翻了自己”毕业就工作”的想法,辞掉实习,准备考研。&br&&br&考研的细节无需赘述,但至今仍清楚的记得自己在复试时惊奇且激动的发现北航宿舍对面就是微软西格玛大厦,那种离理想又进了一步的感觉简直爽到爆。&br&&br&&b&算法设计与分析&/b&&br&&br&我的研究生生涯绝对是一个反面典型——翘课,实习,写水论文,做水研究,但有一点我颇为自得——从头到尾认真听了韩军教授的算法设计与分析课程。&br&&br&韩军给我印象最深的有两点:课堂休息时跑到外面和几个学生借火抽烟;讲解算法时的犀利和毫不含糊。&br&&img src=&/ba8d666fc_b.jpg& data-rawwidth=&121& data-rawheight=&171& class=&content_image& width=&121&&&br&尽管韩军从来没有主动提及,但我敢肯定算法设计与分析基础就是他算法课程事实上的(de-facto)教材,因为他的课程结构几乎和这本书的组织结构一模一样。&br&&br&如果数据结构与算法分析——C语言描述是我的数据结构启蒙,那么韩军的课程和算法设计与分析基础就是我的算法启蒙,结合课程和书籍,我一一理解并掌握了复杂度分析、分治、减治、变治、动态规划和回溯这些简单但强大的算法工具。&br&&br&&b&算法引论&/b&&br&&img src=&/48a1aae24dfc0b3e6d53d6bd_b.jpg& data-rawwidth=&305& data-rawheight=&435& class=&content_image& width=&305&&&br&算法引论是我这时无意中读到的另一本算法书,和普通的算法书不同,这本书从创造性的角度出发——如果说算法导论讲的是有哪些算法,那么算法引论讲的就是如何创造算法。结合前面的算法设计与分析基础,这本书把我能解决的算法问题数量扩大了一个数量级。&br&&br&之后,在机缘巧合下,我进入微软亚洲工程院实习,离理想又近了一步,自我感觉无限牛逼。&br&&br&&b&巩固&/b&&br&&br&在微软工程院的实习是我研究生阶段的一个非常非常非常重要的转折点:&br&&br&1.做出了一个还说的过去的小项目。&br&2.期间百度实习面试受挫,痛定思痛之下阅读了大量的程序设计书。&br&3.微软的实习经历成为了我之后简历上为数不多的亮点之一(本屌一没成绩,二没论文,三没ACM)。&br&这里就不说1和3了(和本文题目不搭边),重点说说2。&br&&br&由于当时组内没有特别多的项目,我负责的那一小块又提前搞定了,mentor便很慷慨的扔给我一个Kinect和一部Windows Phone让我研究,研究嘛,自然就没有什么deadline,于是我就很鸡贼的把时间三七开:七分倒腾Windows Phone,三分看书&经典论文。&br&&br&然而一件事打断了这段安逸的生活——&br&&br&&b&百度实习面试&/b&&br&&br&基友在人人发百度实习内推贴,当时自我感觉牛逼闪闪放光芒,于是就抱着看看国内IT环境+虐虐面试官的变态心理投了简历,结果在第一面就自己的师兄爆出翔:他让我写一个stof(字符串转浮点数),我磨磨唧唧半天也没写出完整实现,之后回到宿舍赶快写了一个版本发到师兄的邮箱,结果对方压根没鸟我。&br&&br&这件事对我产生了很大的震动——&br&&br&&ul&&li&原来自己连百度实习面试都过不去。&br&&/li&&li&原来自己还是一个编程弱逼。&br&&/li&&li&原来自己还是一个算法菜逼。&br&&/li&&/ul&痛定思痛,我开始了第二个”五年计划”,三七开的时间分配变成了七三开:七分看书,三分WP。而这一阶段的重点从原理(Principle)变成了实现(Implementation)——Talk is cheap, show me the code.&br&&br&&b&Elements of Programming&br&&/b&&img src=&/fba7786dde420cd0aa5b92_b.jpg& data-rawwidth=&316& data-rawheight=&458& class=&content_image& width=&316&&&br&由于一直觉得名字里带”Elements of”的都是酷炫叼炸天的书,所以我几乎是毫不犹豫的买了这本Elements of Programming,事实上这本书里的代码(或者说STL的代码)确实是:快,狠,准,古龙高手三要素全齐。&br&&br&&b&C Interfaces and Implementation&/b&&br&&img src=&/60a6c78fc5d200df565e3_b.jpg& data-rawwidth=&336& data-rawheight=&419& class=&content_image& width=&336&&&br&百度面试被爆出翔的经历让我意识到另一个问题,绝大多数公司面试时都需要在纸上写C代码,而我自己却很少用C(多数情况用C#),考虑到自己还没牛逼到能让公司改变面试流程的地步,我需要提升自己编写C代码的能力(哪怕只是为了面试)。一顿Google之后,我锁定了C Interfaces and Implementation——另一本关于如何写出狂炫酷帅叼炸天的C代码的奇书,这里套用下Amazon的评论:Probably the best advanced C book in existance。&br&&br&严格来说上面两本书都不是传统的算法书,因为它们侧重的都不是算法,而是经典算法的具体实现(Implementation),然而这正是我所需要的:因为算法的原理我能说明白,但要给出优雅正确简练的实现我就傻逼了,哪怕是stof这种简单到爆的”算法”。&br&&br&依然是以前的傻逼学习方法:反复研读+一遍又一遍的把代码抄写到本子上,艰难的完成了这两本书后,又读了相当数量的编程实践(Programming Practice)书籍,自我感觉编程能力又大幅提升,此外获得新技能——&b&纸上编码&/b&。这也成为了我之后找工作面试的三板斧之一。&br&&br&&b&应用&/b&&br&&br&说老实话,自从本科实习之后,我就一直觉得算法除了面试时能用用,其它基本用不上,甚至还写了一篇当时颇为自得现在读起来极为傻逼的文章来黑那些动不动就”基础”或”内功”的所谓”大牛”们,这里摘取一段现在看起来很傻逼但当时却觉得是真理的文字:&br&&br&&blockquote&所以那些动则就扯什么算法啊基础啊内功啊所谓的大牛们,请闭上你的嘴,条条大道通罗马。算法并不是编程的前提条件,数学也不会阻碍一个人成为优秀的程序员。至少在我看来,什么算法基础内功都是唬人的玩意,多编点能用的实用的程序才是王道,当然如果你是一个pure theorist的话就当我什么都没说好了。&/blockquote&&br&然而有意思的是,写了这篇文章没多久,鼓吹算法无用论的我自己做的几个大大小小的项目全部用到了算法——我疑心是上天在有意抽我的脸。&br&&br&&b&LL(k)&br&&/b&&br&我在微软实习的第一个项目做的是代码覆盖率分析——计算T-SQL存储过程的代码覆盖率。&br&&br&简单的看了下SQL Server相关的文档,我很快发现SQL Reporting Service可以记录T-SQL的执行语句及行号,于是行覆盖(line coverage)搞定,但老大说行覆盖太naive,我们需要更实际的块覆盖(block coverage)。&br&&br&阅读了块覆盖的定义后,我发现我需要对T-SQL进行语法分析,在没有找到一个好用的T-SQL Parser的情况下,只能自己动手搞一个:&br&&img src=&/eca1bcc19f8d533d3002b78_b.jpg& data-rawwidth=&356& data-rawheight=&420& class=&content_image& width=&356&&&br&比较奇诡的是,做这个项目时当时我刚好把ANTLR作者的Language Implementation Patterns看了一半,什么LL(k)啊Packrat啊AST Walker的概念啊正热乎着呢。&br&&br&于是,自己自己就照着T-SQL的官方EBNF,三下五除二撸了一个T-SQL存储过程的LL(k) Parser,把代码转换成AST,然后用一个External AST Walker生成代码块覆盖的HTML报表,全部过程一周不到。&br&&br&老大自然是很满意——我疑心他的原计划是花两三个月来完成这个项目,因为这个项目之后的两个月我都没什么活干,天天悠哉游哉。&br&&br&&b&拼音索引&/b&&br&&br&拼音索引是我接的一个手机应用私活里的小模块,用户期待在手机文本框可以根据输入给出智能提示:&br&比如说输入中国:&br&&img src=&/15a28f8abca0d_b.jpg& data-rawwidth=&641& data-rawheight=&355& class=&origin_image zh-lightbox-thumb& width=&641& data-original=&/15a28f8abca0d_r.jpg&&&br&同样,输入拼音也应给出提示:&br&&img src=&/fa02be660542_b.jpg& data-rawwidth=&649& data-rawheight=&328& class=&origin_image zh-lightbox-thumb& width=&649& data-original=&/fa02be660542_r.jpg&&&br&中文匹配这个简单,但拼音匹配就得花时间想想了——懒得造轮子的我第一时间找到了微软的拼音库,但接下来我就发现微软这个鸟库在手机上跑不动,研究了下发现WP7对Dictionary的items数量有限制,貌似是7000还是8000个item就会崩盘,而标准汉字则有两万多个,尼玛。&br&&br&痛骂MS坑爹+汉字坑爹之余,还是得自己撸一个库出来:&br&&br&&ol&&li&首先把那两万个汉字搞了出来,排序,然后弄成一个超长的字符串。&br&&/li&&li&接下来用Int16索引了汉字所有的拼音(貌似500多个)。&br&&/li&&li&再接下来用Int64建立汉字和拼音的关联——汉字有多音字,所以需要把多个拼音pack到一个Int64里,这个简单,位操作就搞定。&br&&/li&&li&最后用二分+位移Unpack,直接做到从汉字到拼音的检索。&br&&/li&&li&后来小测了下性能,速度是MS原来那个库的五十倍有余,而代码量只有336行。&br&&/li&&/ol&用户很happy——因为我捎带把他没想到的多音字都搞定了,而且流畅的一逼。&br&&br&我也很happy,因为没想到自己写的库居然比MS的还要快几十倍,同时小十几倍。&br&&br&从这个事情之后我变得特别理解那些造轮子的人——你要想想,如果你需要一个飞机轮子但市场上只有自行车轮子而且老板还催着你交工,你能怎么搞。&br&&br&&b&快速字符串匹配&/b&&br&&br&前面提到在微软实习时老大扔给我一个Windows Phone让我研究下,我当时玩了玩就觉着不太对劲,找联系人太麻烦。&br&&br&比如说找”张晓明”,WP只支持定位到Z分类下——这意味着我需要在Z分类下的七十多个联系人(姓张的姓赵的姓钟的等等)里面线性寻找,每次我都需要滑动四五秒才能找到这个张姓少年。&br&&img src=&/d5c50ccd92c54f2a76ede66b1b8384be_b.jpg& data-rawwidth=&363& data-rawheight=&409& class=&content_image& width=&363&&&br&这TMD也太傻逼了,本屌三年前的老破NOKIA都支持首字母定位,996-&ZXM-&张晓明,直接搞定,尼玛一个新时代Windows Phone居然会弱到这个程度。&br&&br&搜了一下发现没有好用的拨号程序,于是本屌就直接撸了一个支持首字母匹配的拨号程序出来扔到WP论坛里。&br&&br&结果马上就有各种问题出现——最主要的反映是速度太慢,一些用户甚至反馈按键有时要半秒才有反应。本屌问了下他的通讯录大小:大概3000多人。&br&&img src=&/feec6a21ddbcacdfbc9ddef_b.jpg& data-rawwidth=&109& data-rawheight=&105& class=&content_image& width=&109&&&br&吐槽怎么会有这么奇葩的通讯录之余,我意识到自己的字符串匹配算法存在严重的性能问题:读取所有人的姓名计算出拼音,然后一个个的匹配——结果如果联系人数量太多的话,速度必然拙计。&br&&br&于是我就开始苦思冥想有没有一个能够同时搜索多个字符串的高端算法,以至于那两天坐地铁都在嘟囔怎么才能把这个应用搞的快一些。&br&&img src=&/662cdfe_b.jpg& data-rawwidth=&310& data-rawheight=&458& class=&content_image& width=&310&&&br&最终还是在Algorithms on Strings, Trees and Sequences里找到了答案——确实有能够同时搜索多个字符串的方法:Tries,而且这本书还用足足一章来讲怎么弄Multiple string comparison,看得我当时高潮迭起,直呼过瘾。&br&&br&具体细节不多说,总之换了算法之后,匹配速度快了大约九十多倍,而且代码还短了几十行。哪怕是有10000个联系人,也能在0.1秒内搞定,速度瓶颈就这样愉快的被算法搞定。&br&&br&&b&Writing Efficient Programs&/b&&br&&br&之后又做了若干个项目,多多少少都用到了”自制”的算法或数据结构,最奇诡的一次是写一个电子书阅读器里的分页,我照着模拟退火(Simulated Annealing)的原理写了一个快速分页算法,事实上这个算法确实很快——但问题是我都不知道为啥它会这么快。&br&&br&总之,算法是一种将有限计算资源发挥到极致的武器,当计算资源很富余时算法确实没大用,但一旦到了效率瓶颈算法绝壁是开山第一刀(因为算法不要钱嘛!要不还得换CPU买SSD升级RAM,肉疼啊!!)。一些人会认为这种说法是有问题,因为编写新算法的人力成本有时比增加硬件的成本还要高——但别忘了增加硬件提升效率也是建立在算法是Scalable的基础上——说白了还是得撸算法。&br&&img src=&/3f64ac3a613be9bf661d_b.jpg& data-rawwidth=&149& data-rawheight=&197& class=&content_image& width=&149&&&br&说到优化这里顺带提一下Writing Efficient Programs——很难找到一本讲代码优化的书(我疑心是自从Knuth说了过早优化是万恶之源之后没人敢写,万恶之源嘛,写它干毛),注意这本书讲的是代码优化——在不改变架构、算法以及硬件的前提之下进行的优化。尽管书中的一些诸如变量复用或是循环展开的trick已经过时,但总体仍不失为一本好书。&br&&br&&b&提高&/b&&br&&br&实习实习着就到了研二暑假,接下来就是求职季。&br&&br&求职季时我有一种莫名的复仇感——尼玛之前百度实习面试老子被你们黑的漫天飞翔,这回求职老子要把你们一个个黑回来,尼玛。&br&&br&现在回想当时的心理实属傻逼+幼稚,但这种黑暗心理也起了一定的积极作用:我丝毫不敢有任何怠慢,以至于在5月份底我就开始准备求职笔试面试,比身边的同学早了两个月不止。&br&&br&我没有像身边的同学那般刷题——而是继续看书抄代码学算法,因为我认为那些难得离谱的题面试官也不会问——事实上也是如此。&br&&br&&b&Algorithm Design Manual&/b&&br&&img src=&/415ee2dd173e068f3c0fc682f25b2e14_b.jpg& data-rawwidth=&328& data-rawheight=&432& class=&content_image& width=&328&&&br&因为很多Coding Interview的论坛都提到这本红皮书,我也跟风搞了一本。事实证明,仅仅是关于Backtrack Template那部分的描述就足以值回书价,更不用说它的Heuristics和课后题。&br&&br&&b&编程珠玑&更多的编程珠玑&/b&&br&&img src=&/237d099ce73cc_b.jpg& data-rawwidth=&334& data-rawheight=&424& class=&content_image& width=&334&&&img src=&/f725a483ddd7c83c984a245bb2d620de_b.jpg& data-rawwidth=&308& data-rawheight=&456& class=&content_image& width=&308&&&br&这两本书就不用多介绍,编程珠玑和更多的编程珠玑,没听说过这两本书请自行面壁。前者偏算法理论,后者偏算法轶事,前者提升能力,后者增长谈资,都值得一读。&br&&br&&b&The Science of Programming&/b&&br&&img src=&/04b6fed7e8e_b.jpg& data-rawwidth=&302& data-rawheight=&463& class=&content_image& width=&302&&&br&读到编程珠玑里面关于Binary Search的正确性证明时我大呼过瘾,原来程序的正确性也是可以推导的,然后我就在那一章的引用里发现David Gries的The Science of Programming。看名字就觉得很厉害,直接搞了一本开撸。&br&&br&不愧为编程珠玑引用的书籍,撸完The Science of Programming之后,本屌获得了证明简单代码段的正确性这个技能——求职面试三板斧之二。&br&&br&证明简单代码段的正确性是一个很神奇的技能——因为面试时大多数公司都会要求在纸上写一段代码,然后面试官检查这段代码,如果你能够自己证明自己写的代码是正确的,面试官还能挑剔什么呢?&br&&br&之后就是各种面试,详情见之前的博客,总之就是&b&项目经历&/b&、&b&纸上代码&/b&加&b&正确性证明&/b&这三板斧,摧枯拉朽。&br&&br&&b&进化&/b&&br&&br&求职毕业季之后就是各种Happy,Happy过后本屌发现即将面临另一个问题:算法能力不足。&br&&br&因为据说以后的同事大多是ACM选手,而本屌从来没搞过算法竞赛,而且知道的算法和数据结构都极为基础:像那些元胞自动机、斐波那契堆或是线段树这些高端数据结构压根只是能把它们的英文名称拼写出来,连用都没用过,所以心理忐忑的一逼。&br&&br&为了不至于到时入职被鄙视的太惨烈,加上自己一贯的算法自卑症,本屌强制自己再次学习算法:&br&&br&&b&Algorithms 4th&/b&&br&&img src=&/edbe74feae86dc5_b.jpg& data-rawwidth=&361& data-rawheight=&398& class=&content_image& width=&361&&&br&Algorithms是我重温算法的第一本书,尽管它实际就是一本数据结构的入门书,但它确实适合当时已经快把算法忘光的本屌——不为学习,只为重温。&br&&br&这本书最大的亮点在于它把Visualization和Formatting做到了极致——也许它不是最好的数据结构入门书,但它绝壁是我读过的排版最好的书,阅读体验爽的一逼;当然这本书的内容也不错,尤其是红黑树那一部分,我想不会有什么书会比此书讲的更明白。&br&&br&&b&6.851 Advanced Data Structures&/b&&br&&img src=&/d0fc64fd9828fca0eb6f_b.jpg& data-rawwidth=&782& data-rawheight=&633& class=&origin_image zh-lightbox-thumb& width=&782& data-original=&/d0fc64fd9828fca0eb6f_r.jpg&&&br&Advanced Data Structures是MIT的高级数据结构教程,为什么会找到这个教程呢?因为Google Advanced Data Structures第一个出来的就是这货。&br&&br&这门课包含各种让本屌世界观崩坏的奇诡数据结构和算法,它们包括但不限于:&br&&br&&ul&&li&带”记忆”的数据结构(Data Structure with Persistence)。&br&&/li&&li&van Emde Boas(逆天的插入,删除,前驱和后继时间复杂度)。&br&&/li&&li&o(1)时间复杂度的的LCA、RMQ和LA解法。&br&&/li&&li&奇幻的o(n)时间复杂度的Suffix Tree构建方法。&br&&/li&&li&o(lglgn)的BST。&br&&/li&&/ul&…&br&总之高潮迭起,分分高能,唯一的不足就是没有把它们实现一圈。以后本屌一定找时间把它们一个个撸一遍。&br&&br&&b&总结&/b&&br&&br&从接触算法到现在,大概七年:初学时推崇算法牛逼论,实习后鼓吹算法无用论,读研后再被现实打回算法牛逼论。&br&&br&怎么这么像辩证法里的肯定到否定再到否定之否定。&br&&br&现在来看,相当数量的鼓吹算法牛逼论的人其实不懂算法的重要性——如果你连用算法解决实际问题的经历都没有,那你如何可以证明算法很有用?而绝大多数鼓吹算法无用论的人不过是低水平码农的无病呻吟——他们从未碰到过需要用算法解决的难题,自然不知道算法有多重要。&br&&br&Peter Norvig曾经写过一篇非常精彩的SICP书评,我认为这里把SICP换成算法依然适用:&br&&br&&blockquote&To use an analogy, if algorithms were about automobiles, it would be for the person who wants to know how cars work, how they are built, and how one might design fuel-efficient, safe, reliable vehicles for the 21st century. The people who hate algorithms are the ones who just want to know how to drive their car on the highway, just like everyone else.&/blockquote&&br&MIT教授Erik Demaine则更为直接:&br&&br&&blockquote&If you want to become a good programmer, you can spend 10 years programming, or spend 2 years programming and learning algorithms.&/blockquote&&br&总而言之,如果你想成为一个码农或是熟练工(Code Monkey),你大可以不学算法,因为算法对你确实没有用;但如果你想成为一个优秀的开发者(Developer),扎实的算法必不可少,因为你会不断的掉进一些只能借助算法才能爬出去的坑里。&br&&br&以上。
搬运工,看到一篇关于算法学习之路的总结,希望对你有帮助。原文链接:我的算法学习之路MAY 4TH, 2014 | COMMENTS 关于严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和…
泻药,&br&&br&推广一下cos论坛,&a href=&http://cos.name/cn/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&COS论坛 | 统计之都&i class=&icon-external&&&/i&&/a&,学R的人去看看瞬间就觉得不再孤单了,当然,论坛回复率和活跃度值得商榷,我颇有意见,但是考虑到R语言的小众性,还是表示理解。。&br&&br&R语言是一门学术性语言,我认为工程使用量不如学术使用量大,恰好最近我也在逐步熟悉操作,介绍学习R语言的几个资料几个牛人,英文的不用说了,官网足够,中文的有比如,&a href=&http://cran.r-project.org/doc/contrib/Liu-FAQ.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&153分钟学会R&i class=&icon-external&&&/i&&/a&,&a href=&http://cran.r-project.org/doc/contrib/Liu-R-refcard.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&R Reference Card&i class=&icon-external&&&/i&&/a&, &a href=&http://www.bjt.name/upload/pdf/Text%20Mining%20in%20R.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&R语言环境下的文本挖掘&i class=&icon-external&&&/i&&/a&这是&a href=&http://www.bjt.name/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&刘思喆@贝吉塔行星&i class=&icon-external&&&/i&&/a&总结的几个文本,内容非常非常好,顺便敬仰一下前辈,&a href=&/app/rweibo& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Rweibo | Lijian's Homepage&i class=&icon-external&&&/i&&/a&是另一位大牛, 开发的Rweibo瞬间让你从不知道可以做什么转向可以做实施的方向,在此感谢一下&br&&br&接下来,R语言就是工具了,如果你和我一样懒,可以使用RStudio作为IDE,因为帮助内容很丰富,你可以install一个Rweibo的library就开始看有什么可以做的,有什么还不能做的&br&&br&有什么问题可以和我一起研究,欢迎之至,介绍完工具,再说数据挖掘:&br&你想用R来做数据挖掘,你需要做的第一件事情就是,你想拿什么数据做什么?为什么说rweibo很好,因为微博有模式有数据,你就容易想到要做什么,当然你也可以用corpus.JSS.papers包,iris数据集等等,问题是,你得想好你要拿什么数据做什么事。&br&&br&当你选好数据和目的后,你就可以开始学习data mining了&br&这时要做的就是建模&-“你准备怎么做”,(可以用R来观察数据,summary等函数都是很好用的),如果你想好了,比如,ETL是怎么操作的,你就可以开始着手用R作为工具来做了,凡是你想的到的算法,基本都有成型的库了,去cran上面查查看,一定有资料的,慢慢的,熟练了,开始从无到有的提高吧...&br&&br&共勉
泻药,推广一下cos论坛,,学R的人去看看瞬间就觉得不再孤单了,当然,论坛回复率和活跃度值得商榷,我颇有意见,但是考虑到R语言的小众性,还是表示理解。。R语言是一门学术性语言,我认为工程使用量不如学术使用量大,恰好最近我也在逐…
既然你喜欢这个行业,就一定要坚持下去。 我的建议是接下来应该要学得“深”。 &br&推荐你一个blog,
他也是本科,估计也是自学的,后来跟google deepmind, bengio等人合作, 估计对你的规划有所帮助。(他写得每篇博文都是经典)&br&&a href=&http://colah.github.io/archive.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&colah.github.io/archive&/span&&span class=&invisible&&.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
既然你喜欢这个行业,就一定要坚持下去。 我的建议是接下来应该要学得“深”。 推荐你一个blog, 他也是本科,估计也是自学的,后来跟google deepmind, bengio等人合作, 估计对你的规划有所帮助。(他写得每篇博文都是经典)
这个问题问的好。&br&&br&简单来讲,前者不依赖于数据,能精确的解决问题;后者依赖于数据,目的是找到一个可接受的解。&br&&br&经典排序或者搜索算法中的快排、堆排、二叉、B树等等,它们的存在价值不依赖于输入数据——有固定的步骤和解法,对于不同的输入数据都能正常运行(可能对特殊的数据有时候性能会差一些);但是机器学习算法不同,你使用一个算法,做了一个模型,只是为了解决某个特定数据集下的某个需求;换一个数据和场合,这一套东西很可能就没有存在的意义了。&br&&br&举个例子,对于寻路算法,如果你要找到最优解,那本质上就只有完全遍历所有路径。这是一个可计算,但是np的问题。而大多数情况下,我们需要在一个可接受的时间内获得一个比较优秀的解,那我们就可以尝试蚁群算法、模拟退火算法等等。如果应用场景更具体化,我们能做的花样就更多了。比如如果是在微博用户中进行“寻路”(比如通过几个人把你们联系起来),这样我们会优先搜索你好友中关注关系多的用户(因为他们更可能是所谓的“节点”用户);而在实现上,可以把最常使用的节点用户cache起来,进一步提升实际搜索的效率。——这还真就是算法。&br&&br&另一方面,有些问题压根就没法取得所谓的“精确解”。比如拼写纠错。&br&&br&有个很有名的例子:有段时间内,在百度搜索输入“淳安”(chun an),会出现“处男”(chu nan)的搜索结果——百度因此被某些人无脑喷。究竟为什么会出现这么看似搞笑的现象呢?因为在百度算法后台,实际上计算的是两个条件概率的大小:1.想输入“chu nan”而输入“chun an” 2.想输入“chun an”而输入“chun an”。概率1实际上近似等于“想要输入处男的概率×输入错误的概率”,2等于“想要输入淳安的概率×输入正确的概率”。而经过大量历史数据统计训练的结果,概率1大于概率2(比如可能虽然输入正确的概率比输入错误的概率大20倍,但是输入处男的概率比输入淳安的概率可能要大几千倍),所以百度的拼写纠错系统会将chun an纠错成chu nan。——所以,你可以喷百度的用户层次太低,“处男”这么low的词出现概率太高,但是不能黑百度没技术。&br&&br&类似像上面的拼写纠错的例子,你怎么能保证猜中在每一次输入中究竟用户想要的究竟是处男还是淳安呢?你只能通过机器学习得到一个概率,尽量的在大多数类似场景中取得较优的结果。&br&&br&以上。
这个问题问的好。简单来讲,前者不依赖于数据,能精确的解决问题;后者依赖于数据,目的是找到一个可接受的解。经典排序或者搜索算法中的快排、堆排、二叉、B树等等,它们的存在价值不依赖于输入数据——有固定的步骤和解法,对于不同的输入数据都能正常运…
数学原理我不细说,google能得到一大坨解释,以及其他各位牛人也都回答了,奥坎姆剃刀这类概念我也不说,相信题主早就知道。我想你就差一个俗气的解释,那么我来几个俗气的解释。&br&&br&解释之前,先说明这样做的目的:如果一个模型我们只打算对现有数据用一次就不再用了,那么正则化没必要了,因为我们没打算在将来他还有用,正则化的目的是为了让模型的生命更长久,把它扔到现实的数据海洋中活得好,活得久。&br&&br&俗气的解释1:&br&让模型参数不要在优化的方向上纵欲过度。《红楼梦》里,贾瑞喜欢王熙凤得了相思病,病榻中得到一枚风月宝鉴,可以进入和心目中的女神XXOO,它脑子里的模型目标函数就是“最大化的爽”,所以他就反复去拟合这个目标,多次XXOO,于是人挂掉了,如果给他加一个正则化,让它爽,又要控制爽的频率,那么他可以爽得更久。&br&&br&俗气的解释2:&br&假如马化腾心中的商业模型优化目标是让腾讯发展得更好,他的模型只有一个特征,就是张小龙,根据他的目标以及已有样本,它应该给张小龙赋予更大的权重,就可以一直让模型的表现朝这个目标前进,但是,突然有一天马化腾意识到:这样下去不行啊,他的权重大得没边的话,根本不可持续啊,他要是走了,他要是取代我了。于是马化腾就需要在优化这个目标的时候给这个唯一的特征加一个正则化参数,让权重不要过大,从而使得整个模型能够既朝着设定目标走,又不至于无法持续。&br&&br&俗气的解释3:&br&我们这群技术男在公司里,如果模型目标是提高自身能力并最终能够在公司有一席之地,理想的优化方法是提高各种牛逼算法,各种高大上的计算平台的熟悉程度,尽量少开无谓的会议,少接领导扯淡的需求,但是如果只是这些的话,很可能在这个公司呆不太久,因为太关注自己的特征权重了,那么如果这个公司其实非常适合提升自己的能力,那么要能在这里呆久点,就得适当限制自己这些特征的权重绝对值,不要那么绝对坚持用到牛逼算法,偶尔也处理处理领导的扯淡需求,平衡一下,你的模型才能泛化得更广。&br&&br&最后,我还是正本清源一下,正经再简单解释一下正则化,以下内容来自PRML前三章,具体页数记不清了。&br&&br&&img src=&/bd7cc45e1be576dbbfa49_b.jpg& data-rawwidth=&758& data-rawheight=&502& class=&origin_image zh-lightbox-thumb& width=&758& data-original=&/bd7cc45e1be576dbbfa49_r.jpg&&&br&上图中的模型是线性回归,有两个特征,要优化的参数分别是w1和w2,左图的正则化是l2,右图是l1。蓝色线就是优化过程中遇到的等高线,一圈代表一个目标函数值,圆心就是样本观测值(假设一个样本),半径就是误差值,受限条件就是红色边界(就是正则化那部分),二者相交处,才是最优参数。可见右边的最优参数只可能在坐标轴上,所以就会出现0权重参数,使得模型稀疏。这个图告诉我们,如果你太绝对相信那个目标了,沉迷其中,那些还没遇到的样本一来,你拔不出来就挂掉了。&br&&br&最后, regularize这个词更多的意思是“使系统化”,“使体系化”,也就是说不要走极端,要建立和谐社会,科学发展观。&br&&br&==================================&br&再补充一个角度:&br&正则化其实就是对模型的参数设定一个先验,这是贝叶斯学派的观点,不过我觉得也可以一种理解。&br&L1正则是laplace先验,l2是高斯先验,分别由参数sigma确定。&br&求不要追究sigma是不是也有先验,那一路追究下去可以天荒地老。
数学原理我不细说,google能得到一大坨解释,以及其他各位牛人也都回答了,奥坎姆剃刀这类概念我也不说,相信题主早就知道。我想你就差一个俗气的解释,那么我来几个俗气的解释。解释之前,先说明这样做的目的:如果一个模型我们只打算对现有数据用一次就不…
机器学习、统计分析、数据挖掘、神经网络、人工智能、模式识别,很难说谁包含于谁,只能分开说每一个概念的意义,谁服务于谁。&br&&br&数据挖掘是一种概念,从数据中挖掘到有意义的信息。&br&很多人认为数据挖掘是新学科,是基于大数据,其实不然,如果给你一个数据说李嘉诚有100多亿美元,再给你一个数据是全国平均人均可支配收入水平是13279元人民币,你能挖掘出一个信息叫,李嘉诚很有钱,这也是数据挖掘。只不过很小白而已。&br&&br&模式识别是目的,识别出一种模式,比如两个眼睛一个鼻子的是人脸的模式。如果不通过电脑,手工的通过计算来识别模式,也属于模式识别&br&&br&机器学习是一种方法,通常用来进行模式识别,用机器去学习不直观的数据得到模式,这其中会需要用到各种各样的知识,比如统计分析的知识。&br&&br&人工智能,这个概念就大了,这个概念是想要人工制造出和人类一样的智能,所以很多人就想出了机器人这么一个科幻产物,有人类的智能,并且依托于机器的强大运算能力。事实上,人工智能也不一定要和电脑挂钩的,只不过现在只有电脑有这么强大的计算能力,如果有一天生物科技能够突破,说不定也能实现。(纯属YY)&br&&br&神经网络,这是学习算法中的一个很火的模型,它号称结合了多学科,模拟了人的神经过程,是很好的一种学习方法,可以说这个是基于统计学范畴的。&br&&br&有什么疑问再问我~
机器学习、统计分析、数据挖掘、神经网络、人工智能、模式识别,很难说谁包含于谁,只能分开说每一个概念的意义,谁服务于谁。数据挖掘是一种概念,从数据中挖掘到有意义的信息。很多人认为数据挖掘是新学科,是基于大数据,其实不然,如果给你一个数据说李…
naive,妹纸就是要一个一个上,靠那些机器学习的东西来搞,还有情怀吗?
naive,妹纸就是要一个一个上,靠那些机器学习的东西来搞,还有情怀吗?
建议你参考一下我答过的两个问题,其中的某些信息可以帮到你
&br&&ul&&li& &a href=&/question//answer/& class=&internal&&如果想从事人工智能方面的研究,应该考研或者有什么好的发展建议么?都需要学些什么知识?&/a&
&/li&&li& &a class=&internal& href=&/question//answer/&&想学习「机器学习」,需要学习哪些先导课程?&/a&
&/li&&/ul&针对你说的用户分析这一块,觉得你还是说的太宽泛了,无法给你具体的建议。
&br& 关于Web数据挖掘的书,有一本推荐
&a class=& wrap external& href=&/subject/3413815/& target=&_blank& rel=&nofollow noreferrer&&Web数据挖掘 (豆瓣)&i class=&icon-external&&&/i&&/a&
&br& 不过这本书主要针对文本,不知道是不是可以解决你的问题。
&br&&br&其实说白了,做Web数据挖掘也还是会用到数据挖掘的(所有)知识,你说的用户分析,实质上还是要分析用户产生的数据嘛,无论是用户写的文本(文本挖掘,自然语言处理),用户购买商品的记录和评分(推荐系统),用户浏览的历史和点击流(流数据挖掘),用户上传的照片和视频音频(机器视觉),数据挖掘和机器学习中的各种方法我想都是需要掌握的,对此之前我推荐几本书,基本上算是由浅入深,尤其对你有统计学背景的人来说,就更适合了。请参考
&a class=&internal& href=&/question//answer/&&数据分析、挖掘的好书求推荐?&/a&&br&&br&再回到你的问题上,除了参考上面的信息,再强调一下。做数据挖掘,不编程不是不可以,现在已经有很多软件帮助你实现了,比如SPSS,WEKA,但是那些软件毕竟是人家写好的,算法也规定死了,软件规定的是什么就是什么,这样就限制了灵活性。具体编程建议上面都说了。
&br&&br&另外,我觉得你懂社会学是一个大加分,因为高数据挖掘的人几乎都是理工科出身,对社会学一无所知,希望你能利用好自身的优势,祝你成功!
建议你参考一下我答过的两个问题,其中的某些信息可以帮到你
针对你说的用户分析这一块,觉得你还是说的太宽泛了,无…
应该说做行业分析,数据都是不完整的,但是这也许就是体现行业分析师特点所在&br&&br&就是因为整个行业,各个公司都只是了解自己,不了解整个行业的营收,所以才需要第三方公司提供行业数据,但是因为公司自我的保护性质,导致很多需要用来分析的数据不完整,或者不详实。这个是必然的。&br&&br&所以这个时候,就需要行业分析师从以下几点努力&br&&br&1.根据已有的数据,行业分析特点,行业周期分布,自身发展的障碍和未来预测等,从旧数据,来预测未来数据,来完善这个行业的其他获得不到的数据。&br&2.根据相关类似行业特点,将第一步完善的数据进行调整。&br&3.根据上下游行业发展和趋势预测,将第二步完善的数据和分析进行调整&br&4.根据国家政策和行业壁垒等会带来严重格局改变的因素,对第三步完善的数据,猜想到上限和下限。&br&5.通过和行业内专家或者各公司ceo访谈,进一步完善第四步的分析结果。&br&&br&以上
应该说做行业分析,数据都是不完整的,但是这也许就是体现行业分析师特点所在就是因为整个行业,各个公司都只是了解自己,不了解整个行业的营收,所以才需要第三方公司提供行业数据,但是因为公司自我的保护性质,导致很多需要用来分析的数据不完整,或者不…
&img src=&/ab9cf39d4b7d53b27a31eee_b.jpg& data-rawwidth=&427& data-rawheight=&498& class=&origin_image zh-lightbox-thumb& width=&427& data-original=&/ab9cf39d4b7d53b27a31eee_r.jpg&&
比如艾普洛菲尔,那真是我们编辑编出来的。。。标准原创。。。&br&&br&数据有两种,一种是客观事实facts,比如博物馆的名字,地址等,这些大多有开源数据。&br&另一种是主观描述,比如作者的介绍,网友的点评等。&br&&br&说到穷游,我们的论坛有几百万网友,在目的地上线前,穷游确实积累了九年的数据。&br&而且,我们有一个20人的团队和近100名作者在一直为目的地提供内容。&br&&br&说白了,就是人堆出来的,确实也用了快十年的时间。
比如艾普洛菲尔,那真是我们编辑编出来的。。。标准原创。。。数据有两种,一种是客观事实facts,比如博物馆的名字,地址等,这些大多有开源数据。另一种是主观描述,比如作者的介绍,网友的点评等。说到穷游,我们的论坛有几百万网友,在目的地上线前,穷…
这个作为我认真回答的第二个问题~~&br&下面大概说一下你可以看得到的地方&br&1) 证券公司行业报告&br&
如果你要研究的这个行业有那么些上市公司的话,那么证券行业报告肯定是你学习最快的资料。如果要提供网站的话,基本上是 , 渐飞论坛,这些基本都是免费的(可能需要币神马的) 如果是人大经济论坛的话,你给我站内信,我可以帮你下载。&br& 其余的话,可以去各种文库(包括并不仅限于 百度文库、新浪文库、豆丁文档)&br&也可以尝试用google 搜索,关键字是 XX(行业名) +证券+深度研究报告+PDF&br&&br&基本上只看近2年的报告,10页以上的报告再看!(什么5page以内的都不用打开,中国的股票行业有点过度研究了)&br&下面谈一谈优缺点是什么&br&优点: 比较翔实,基本上会覆盖到这个行业几个关键的地方,对于快速了解行业比较好&br&缺点: 观点很多时候会不客观,因为涉及到买卖股票,很多时候会写出买入股票的观点,比如行业回暖呀(其实P都没有),比如竞争优势(其实都是扯淡)&br&写的点都很老套,没有什么深入浅出的观点,因为说白了,分析员也就看了几年这个行业,怎么可能有神马特别深刻的见解,就算有,他也不会免费告诉你啊!&br&&br&2) 一些行业协会的报告/信息&br&你基本上可以通过第一部分的报告,快速了解到行业的基本点了,比如整个行业是供过于求还是已经非常平稳了,你也会知道这个行业的关键点是什么,到底是成本控制还是技术领先,你还会知道这个行业有什么人提供 数据了,因为你发现大家都用某个协会(或者某本年鉴)的数据,你就可以去自己去搜这些数据了(因为我都是用付费的网站,所以就不知道免费有哪些,但是统计局的网站肯定是可以的)&br&&br&3)经过以上2部,你就大概算已经是一个行业的入门者了,其实我觉得还有一个就是看别人的观点(一定不是券商的),比如行业大佬的采访稿、一些知名网站非常深入浅出的报道,请注意一定要用批判性的眼光去看,这样你可以学到更多! &br&&br&基本上就是这样了,如果题主还想了解什么具体行业,如果我熟悉的,可以帮你再详细解答~~&br&&br&(这里的潜台词是 我很热心,快来点赞!)
这个作为我认真回答的第二个问题~~下面大概说一下你可以看得到的地方1) 证券公司行业报告 如果你要研究的这个行业有那么些上市公司的话,那么证券行业报告肯定是你学习最快的资料。如果要提供网站的话,基本上是 , 渐飞论坛,这些基本都是免费…
&a href=&http://datasciencemasters.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Open Source Data Science Masters by datasciencemasters&i class=&icon-external&&&/i&&/a&&br&看到一个不错的网站,是一个Stanford的CS学生维护的,上面列出了这个方向相关的课程和相应的资源,我觉得很不错。
看到一个不错的网站,是一个Stanford的CS学生维护的,上面列出了这个方向相关的课程和相应的资源,我觉得很不错。
来自子话题:
谢邀。&br&&br&不同意现在排名第一的回答,首先,让咱们分清楚问题到底是什么:你想问的到底是“现在企业中的数据科学家是什么样”还是“数据科学家应该是什么样”。前者属于实证问题,后者属于规范问题,答案显然是不一样的。&br&&br&O'Relly那篇文章我也读过,里面说“ Data Scientists往往可以独立完成一条龙的完整分析过程:从数据提取,整合、并进行分层,进行统计或其他复杂的分析,创造引人注目的可视化诠释和效果,开发具有更宽广应用前景的数据工具。” 这句话其实我是同意的,剑指斜阳其实也有类似观点。但是现在排名第一的答案在拼凑了O'Relly那篇文章之后,突然给出了一个“Data Researcher 更符合一个科学家的形象——专注地研究”的结论,我实在不能苟同。难道只有研究data才叫研究,研究企业就不叫研究吗?&br&&br&另外,Levin菠萝说“数据分析师和数据科学家,如果非要进行分类的话我认为区分在于初级的Date Creative和高级的Date Creative。例如初级的进行基础的相关、回归、聚类等统计分析,高级的进行机器学习、神经网络等高级挖掘分析”,这点就更加误人子弟,把回归、聚类归入初级分析,机器学习、神经网络归入高级分析,这本身在学术上就是错的。回归、聚类、神经网络都是机器学习的范畴——不要以为回归就是OLS,还有很多technic,优化方法如MCMC、MLE、Gradiant Descent、Gradient Boosting,取样如bootstrapping, bagging, ensemble,还可以修改cost function加penalty,从更广阔的角度来看,回归其实是神经网络的一个special case。而且我还是头一次见到人把神经网络和机器学习并列起来谈的——前者明明从属于后者的范畴。&br&&br&下面正式回答问题:&br&1、现在企业中的数据科学家是什么样?&br&从我的观察来看,不同企业对于data scientist这个title的定义其实是有分歧的,偏向于data reseacher的有,多见于大型IT企业,百度大脑的data scientist们多属于这一类型,他们搞的是比较前沿的深度学习,平常会读大量paper可能自己也会发;偏向于data creative的有,各种企业都会储备,会ETL,懂模型、懂行业,会展示沟通,比较能够创造直接的价值。偏向于data developer的也有但是很少,他们不懂模型,只要给他们算法公式,他们就能用编程语言帮你实现,实现算法是重要的技能,但是这种不懂模型不懂行业的,现在大多企业都不太会给这样的人data scientist的title了。用最常用的数据分析软件R来做个比喻,通常是:&br&data reseacher:发明/改进模型算法然后给R写package的。&br&data creative:用R作分析的。&br&data developer:觉得R太简单不屑于用的+偶尔帮data reseacher给R写package的。&br&很多时候,data scientist这个title对于企业来说只是众多title的一个,并没什么特别的,员工从Jr. Data Analyst、Sr. Data Analyst一路干上来,需要升职,公司需要激励员工,恰好data scientist这个title又比较sexy一点,那就叫data scientist好了!这就是多数企业的逻辑,无非是提供一个能和Associate、MD、VP这种管理层晋升路线相比拟的技术晋升路线罢了。&br&&br&2、数据科学家应该是什么样?&br&这个问题其实大家都在摸石头过河,以下提供一点个人的浅见,欢迎交流。&br&“能够独立完成一条龙的完整分析过程”是数据科学家身上独有的重要价值。O'Relly那篇报告把数据分析分成三个阶段,数据提取、整合;数据统计、复杂分析;可视化诠释,并把这些任务交由开发人员、分析师和设计师担当,这在理论上是没有错的。但是在实际中企业的很多问题并不能清晰定义,像这样如流水线般精确地分配工作往往是不可能的——企业的问题很多时候只是老板脑中闪现的一个idea,面对这样的问题,回答的思路都还有待讨论,更遑论去找什么样的数据,去哪里找数据、怎样去找数据、以及后续怎样分析这样的问题了。&br&&br&这个时候,数据科学家的价值就体现出来了,一个理想的data scientist应该是data developer、data creative、data researcher、data businessperson的结合,Ta往往能够领导一个没有被清晰定义的问题的回答过程,在这期间,data scientist对于完整分析过程的把控能力能够帮助Ta主导项目的方向,整合各方资源,data scientist并不一定需要亲身参与到技术开发过程中,但是Ta知道什么样背景的人能够胜任这些工作,知道怎样组建适当的团队,也知道什么样的模型或分析方法能够适用,它们的优缺点都是什么,怎样改进,必要时懂得去查找学术界最新的研究成果并转化;以及知道老板想要什么,始终牢牢把握问题的核心,及时纠偏。最后,把这一套回答此类问题的方法流程化,以应付以后出现类似问题。&br&&br&综上所述,data scientist应该是data developer, data creative, data researcher、data businessperson的结合,但又高于这四者,关键就在于Ta对于整个数据分析闭环的把控能力。有清晰定义的、循规蹈矩的Routine work不是data scientist的专长,data scientist的专长在于formulate、quantify未清晰定义的问题,data science这个领域本来就有协作性,靠一个人单打独斗肯定不行,但只有data scientist这样的“通才”才有能力领导那四种“专才”去解决棘手的问题。&br&&br&相信看了以上回答,数据分析师和数据科学家的区别已经不言自明。
谢邀。不同意现在排名第一的回答,首先,让咱们分清楚问题到底是什么:你想问的到底是“现在企业中的数据科学家是什么样”还是“数据科学家应该是什么样”。前者属于实证问题,后者属于规范问题,答案显然是不一样的。O'Relly那篇文章我也读过,里面说“ Da…
一直在自学和用数据挖掘的东西。因为不是本专业,所以随便讨论一下,仅作参考。&br&补充一下我了解的数据挖掘经典教材,&br&1《数据挖掘概念与技术》,作者:[加]Jiawei Han/Micheline Kamber 译: 范明/孟小峰 等&br&2《数据挖掘导论》,作者: [美]Pang-Ning Tan,Michael Steinbach,Vipin Kumar 著&br&3《数据挖掘技术——市场营销、销售与客户关系管理领域应用》作者: (美)贝瑞(Berry.M.J.A.),(美)莱诺夫(Linoff.G.S.) 著,别荣芳,尹静,邓六爱 译&br&
三本都有中文版,前两本范明教授的翻译看起来不流畅,可能的话还是去看英文原版。&br&&br&相关的数学知识模型,主要应该是多元统计方面的。有的学校只用自己的影印版书做教材。可参考英文书很多,就不一一列举。中文的可以看清华的《实用多元统计分析》&br&&br&的确,数据挖掘不只是电商的数据分析,也不只是数据仓库,学术型的讨论更多在各种模型,如:分类、回归预测、相关性分析等。&br&如果要做模型做得实用可行,一是用更高级更复杂的模型,本科教材级别的估计不够;二是更巧妙地定义问题、简化问题。不过无论怎样,只要能解决问题,就是好方法。
一直在自学和用数据挖掘的东西。因为不是本专业,所以随便讨论一下,仅作参考。补充一下我了解的数据挖掘经典教材,1《数据挖掘概念与技术》,作者:[加]Jiawei Han/Micheline Kamber 译: 范明/孟小峰 等2《数据挖掘导论》,作者: [美]Pang-Ning Tan,Michae…
学习路线应该是这样,从浅入深:&br&&b&前提&/b&:了解一门语言。&br&&b&第一步&/b&:先了解基本的数据结构,栈、队列、树、图、简单排序等;一般高校教材基本满足。&br&&br&&b&第二步&/b&:如果还在上学,抓紧机会学习好概率论、数理统计、微积分、线性代数,最优化,为以后进阶打好基础;(概率和微积分尤为重要)。如果只想了解常见算法,这步可略。如果想在算法上走的更远,数学基本功一定需要下功夫;&br&&br&&b&第三步&/b&:来吧,不用说,上《算法导论》,第一阶段看懂算法,尽量实现一遍;第二阶段看懂证明;第三阶段习题基本思考一遍;&br&&br&实习、项目、编程、练习一定要伴随左右,无练习无提高;&br&&br&&b&第四步&/b&:继续进阶,深入了解一个领域,或图像信号模式识别、或统计学习人工智能、或编译原理底层优化等等;例如你选择人工智能之路,那么看《统计学习》、《数据挖掘》、《神经网络》;&br&&br&&b&第五步&/b&:找个好项目锻炼自己的能力,在实践中加深理解。&br&&br&&b&第六步&/b&:看论文,改进已有算法,或提出更佳算法;&br&&br&再往上就不知道了...&br&&br&总之,保持激情、保持好奇心,一路向前,终将有所收获。
学习路线应该是这样,从浅入深:前提:了解一门语言。第一步:先了解基本的数据结构,栈、队列、树、图、简单排序等;一般高校教材基本满足。第二步:如果还在上学,抓紧机会学习好概率论、数理统计、微积分、线性代数,最优化,为以后进阶打好基础;(概率…
&b&先说一下自己理解的“精通R”。&/b&&br&&br&和其它的通用型语言不同,R是专注于数据分析的语言,也就是domain-specific language。从这个角度看和matlab、SAS是比较类似的。&br&&br&因此,与其说精通R,不如说精通数据分析的方法。&br&&br&但是数据分析又是分领域的,不同的domain有不同的数据分析方法。且看官网上的task view都有几十个了,从生物信息的数据分析到自然语言处理的数据分析,应有尽有。进入不同领域的数据分析之前,需要具备起码的基础专业知识,否则数据意义都理解不了。&br&&br&因此,与其说精通数据分析,不如说精通某个专业。&br&&br&R有5000个包,每个包后面可能都有一篇专业论文的支撑,不可能每个都精通。就像是一个有5000个面的钻石,我只能看到某些面。只熟悉关于统计、机器学习、文本处理等一些常用的方法和包。其它的也不在我掌握之中了。&br&&br&&b&再说一下熟悉R之后的感受。&/b&&br&&br&有助于打通多个专业的知识。有一句说的很好,统计学家可以随意的进入其它学科的后院。因为很多专业的数据方法是通用的。例如看一篇疾病预测的论文,其中对基因筛选使用就是互信息方法。这正好也是文本挖掘中,对空间向量模型降维的一种方法。掌握的东西越多越会融合在一起,也会遇到越来越多的新奇东西。就这样从一个后院跳到另一个后院,会看到整个格局,比较有趣。&br&&br&对数据的思考和实践都比以前快。类似于五笔打字,熟练的人看到一个字,不用思考如何去拆字,手指会自动跳到相应的部首键位上去。我现在看到数据,可以直接用R的函数来思考怎么折腾它。&br&&br&可以更好的赚钱和交朋友。这个就不用多说了。
先说一下自己理解的“精通R”。和其它的通用型语言不同,R是专注于数据分析的语言,也就是domain-specific language。从这个角度看和matlab、SAS是比较类似的。因此,与其说精通R,不如说精通数据分析的方法。但是数据分析又是分领域的,不同的domain有不同…
补充下匿名用户的第三点,用基于webkit的工具就ok了,如&ul&&li&&b&selenium : &/b&&a href=&http://seleniumhq.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Selenium - Web Browser Automation&i class=&icon-external&&&/i&&/a&&/li&&li&&b&capserjs : &/b&&a href=&http://casperjs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CasperJS, a navigation scripting and testing utility for PhantomJS&i class=&icon-external&&&/i&&/a&&/li&&li&&b&phantomjs: &/b&&a href=&http://phantomjs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PhantomJS: Headless WebKit with JavaScript API&i class=&icon-external&&&/i&&/a&&/li&&/ul&其他简易的就多的去了:&ul&&li&httpclient: &a href=&http://hc.apache.org/httpclient-3.x/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&HttpClient - HttpClient Home&i class=&icon-external&&&/i&&/a&&/li&&li&request.js: &a href=&/mikeal/request& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/mikeal/reque&/span&&span class=&invisible&&st&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&li&node.io: &a href=&/chriso/node.io/wiki& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/chriso/node.&/span&&span class=&invisible&&io/wiki&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&li&jsdom : &a href=&/tmpvar/jsdom& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tmpvar/jsdom · GitHub&i class=&icon-external&&&/i&&/a&&/li&&/ul&参见我之前的一个答案: &a href=&/question//answer/& class=&internal&&如何在前端自动化测试中模拟用户的操作?&/a&&br&&br&解析方面,简单的用正则表达式,复杂的用dom分析(如jquery/html parser等github上一大堆类库)。&br&譬如我这段用来分析知乎的收藏夹:&a href=&/unogz/izhihu/blob/develop/src/modules/collection.js#L56& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/unogz/izhihu&/span&&span class=&invisible&&/blob/develop/src/modules/collection.js#L56&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&PS:最近在参与爱知乎插件,官方没有API真的很不方便,POST的接口都是直接返回html的,要自己爬数据。&br&&br&以上。
补充下匿名用户的第三点,用基于webkit的工具就ok了,如selenium : capserjs : phantomjs: 其他简易…

我要回帖

更多关于 二手车评估朱凯 的文章

 

随机推荐