我知道许多人是刚接触CS,而且还时间紧迫,并且不知道要用什么资源(例如,美国的顶级名校中有哪些学校开设了公开的CS课程,CS顶会中有什么paper是必看的)。
而且我还相信大家对一个事情是深有体会的,就是:一旦用了不好的资源,真的是很影响学习心情,甚至连碰都不想碰这个知识。
举个例子,你可以回忆一下,你中学时代是否有特别不喜欢的老师(比如你不喜欢这个老师的讲课方式,因为感觉这个老师讲的不好,无法让人快速吸收知识),然后就导致你连那门课也提不起兴趣学、成绩也不咋好看。
万一在学CS的时候也遭遇这种事,那这就很要命了,因为,如果学了半天结果连CS的门都还没入,那么这简直是太耽误成长了,而且还会极大地打击你学习CS的积极性————不好的资料可能会让你误以为CS是一个无趣的、不适合自己的学科。
所以,我还是想整理下这些顶级资源,方便所有人培养起对CS的兴趣,然后在CS学习上可以走捷径。
我希望郑重地强调一件事,就是,你不要让你的CS成长依赖于你的大学开设的课程或者身边的某个CS老师。因为真正有效的、扎实的CS成长,最好是通过自学那些顶级的CS资源。
接下来,我们不妨看一看,那些优秀的人且考虑使用顶级的CS资源的人,会使用什么资源去学习CS,然后实现自己在CS上的成长呢?
根据肖哥的观察,他们使用的资源依次如下:
使用的CS资源
1.了解不同的CS方向以及它们的学习路线
2.学习顶级名校CS课程以及网友资源
3.做projects
4.阅读顶会的papers以及经典的papers
接下来,肖哥一个一个说一下这4种资源都有啥
对于网站原创内容版权维护的声明:https://www.xiaogeedu.com/h-nd-337.html
一、System
(一)Human-Computer Interaction学习路径
人机交互(Human-Computer Interaction,简写HCI):是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程。 有很多著名公司和学术机构正在研究人机交互。 在计算机发展历史上,人们很少注意计算机的易用性。
2. 初阶
知识分类/使用方法
链接和介绍
基础课/101
想入门就先看它
https://www.coursera.org/specializations/interaction-design
最多人推荐的入门课程系列,是比较硬核且干货的。这个系列的优点是非常系统和完整,讲课也不枯燥,所以非常推荐给新手。
由8门课程组成,第一门课建议从Human-Centered Design: an Introduction开始听,这门课可以当作HCI101。其他课程都是把各个设计环节展开来讲,顺序没有太大要求,而且本身也有点重叠,不是很好排序。最后一门课是一个实践项目。
的确Rosenfeld Media什么的出了不少书,但是推荐先用这个课打底再研究别的
基础课/101,所有2里选一个看即可,夯实基础。
作为UCSD的平替,听一遍UCSD有时候记不住,又不喜欢重听课程的人,可以听老师在讲一遍这个。
B站:https://www.coursera.org/specializations/interaction-design
和UCSD系列差别不大。我是很不喜欢重听课程的人,但听一遍有时候又记不住,我就会去找另一个一样主题的课,听别人再讲一遍。如果你和我一样不耐烦,那就看完UCSD,来看一眼GaTech吧。
基础课/101,所有2里选一个看即可,夯实基础。
作为UCSD的平替,听一遍UCSD有时候记不住,又不喜欢重听课程的人,可以听老师在讲一遍这个。
基础课/101,所有2里选一个看即可,夯实基础。
作为UCSD的平替,听一遍UCSD有时候记不住,又不喜欢重听课程的人,可以听老师在讲一遍这个。
B站:
https://www.bilibili.com/video/BV1ZE411W73Z?from=search&seid=10496014647131074073
Youtube:
https://www.youtube.com/playlist?list=PLoROMvodv4rMyupDF2O00r19JsmolyXdD
Stanford人机交互课程,对人机交互设计的历史、实施过程、思维方法的导览,外加几节实验操作,最后还有一些人机交互哲学的内容,属于概论类的课程。
基础课/101,所有2里选一个看即可,夯实基础。
作为UCSD的平替,听一遍UCSD有时候记不住,又不喜欢重听课程的人,可以听老师在讲一遍这个。
https://www.coursera.org/specializations/uva-darden-design-thinking
关于敏捷/产品/设计的课程,爱在这个主题我非常喜欢,恨在讲得的确有点照本宣科的感觉,并不太吸引人。
说到design sprint,据我所知被提出或者正式成型应该是Google Ventures总结出来的一套理论,这里有个PDF,简明地概括了design sprint的过程和方法,值得一看:https://developers.google.com/design-sprint/downloads/DesignSprintMethods.pdf 可以看完再上Coursera的课。
虽然敏捷x产品x设计好像是个蛮新的话题,但其实里面各种technique都似曾相识,建议UCSD入门之后再看这个,有重复强化的效果,学习是螺旋形上升的嘛。
书籍
唐诺曼的《设计心理学》
《破茧成蝶:用户体验设计师的成长之路》
《细节决定交互设计的成败》
《交互设计指南》
唐诺曼的《设计心理学》提到的次数第二多,仅次于《About Face 3 交互设计精髓》。主要讲所有设计要以用户需求为中心。《情感化设计》(放在了中阶里面)讲美好的界面/交互要让用户愉悦。建议先读第一本再读第二本,但第二本一定要读,因为我见过业界设计师明显没有理解情感在设计上的应用,他们的决定让团队和产品吃了很多亏。
知识分类/使用方法
链接和介绍
Coursera 东京大学 Interactive Computer Graphics
偏技术
会讲一些学术paper
https://www.coursera.org/learn/interactive-computer-graphics
UCSD HCI101是用来打基础的话这一门是个兴趣班 比较偏技术 线框图啊交互啊什么的基本没有 所以我前面说HCI范围太大 你要搞清楚你想要的HCI是什么。。。日本老师口音巨萌这些课基本上是把前沿的学术paper(没有特别新 好像1-3年前的吧)转化成有趣的课题 再深入浅出地讲解出来对扩展视野 提高兴趣很有帮助五星推荐!
书籍:
《UI群英会——用户体验·交互·视觉方法论》
《用户界面设计指南》
唐诺曼的《情感化设计》
《 Don't Make Me Think 》
《 Made to Stick 》
我把讲用户研究和提及次数较多的书籍放在了这里。
《UI群英会——用户体验·交互·视觉方法论》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgubawuQYopoPk8wQ.pdf
《用户界面设计指南》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgw7awuQYoyI3AYw.pdf
唐诺曼的《情感化设计》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgxrawuQYorNih7Qc.pdf
《 Don't Make Me Think 》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg1siuuQYo8KrngQQ.pdf
《 Made to Stick 》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgzcquuQYowMibkgM.pdf
CHI是ACM旗下的会议,专注于交互技术的讨论
IEEE是专注于先锋科技的老牌巨头期刊。
知识分类/使用方法
链接和介绍
Interaction Design Foundation
这个网站被提到的频率是仅次于coursera UCSD课程的。
IDF是一个专门为交互设计而创建的学习网站。你可以选择一种自己想要的职业,网站会自动给你提供相关的学习课程。提供很多的课程,从小白到专家级别都有。也有一些从业者心得和经验贴。缺点是课程需要收费,但能提供证书。而且公司的宗旨是:学的越多,费用越少。
丹麦的,有课程有书,注册一下就行,可能要花钱,但也应该不贵。北欧的interaction注重理论,尤其是participatory design(user-centred design),是HCI最新的第三波浪潮(第二波usability,第三波user experience)。国内目前应该还是在注重usability,不过我觉得迟早也会往experience这块转换吧。
Careerfoundry
https://careerfoundry.com/en/courses/become-a-ux-designer/
在Careerfoundry,你能学习到成为一名交互设计师必须先要掌握用户体验设计的知识,用户体验是交互设计的核心知识。
6个月的bootcamp项目。
书籍
我把一些和用户研究、文化、艺术、哲学、案例分析有关的放在了高阶这里:
《About Face 3 交互设计精髓》提到次数最多,是HCI经典书籍,厚厚一本很难读完。对于新人来说,可以随便翻翻,先看看目录,找那些自己感兴趣的、疑惑的章节读一读。千万不要一开始去看【交互设计精髓】,里边讲的东西比较深奥你会看不懂的,看了还伤学习的冲劲。至今我还在研究【交互设计精髓】上所说的东西。
为什么《About Face》不适合交互新手入门,老鸟也需慎读:https://mp.weixin.qq.com/s/BenLaPUyyBCdH1YhUUq3NA
《洞悉用户:用户研究方法与应用》
《用户体验面面观——方法、工具与实践》
《写给大家看的设计书(第三版)》
《赢在用户》
《Measuring user experience》
《方寸指尖:移动设计实战手册》
《交互设计沉思录》
《用户体验百家谈》
《UCD火花集2》
《移动应用UI设计模式》
《触动人心:设计优秀的iPhone 应用》
《设计之下:搜狐新闻客户端的用户体验设计》
艺术设计概论
新媒体艺术发展综述
中国美术史
界面设计模式(第2版)
《Designing Interaction》by bill moggridge
《用户体验要素:以用户为中心的产品设计》
《点石成金:访客至上的网页设计秘笈》
《交互设计——超越人机交互》
《可用性工程》
《用户体验设计:讲故事的艺术》
《Web表单设计:点石成金的艺术》
《简约至上:交互设计四策略》
《认知与设计:理解UI设计准则》
《设计师要懂心理学》
《Contextual Design》 By Hugh Beyer
文章
文章:
iOS 8 人机界面指南
https://www.woshipm.com/ucd/108329.html
https://www.woshipm.com/pd/112188.html
https://www.woshipm.com/pd/127802.html
https://www.woshipm.com/pd/131834.html
Material design
https://www.ui.cn/detail/20948.html
Material design学习笔记
https://www.woshipm.com/pd/169095.html
Apple Watch人机交互指南
https://www.woshipm.com/ucd/120429.html
https://www.woshipm.com/ucd/120797.html
网站:
UX Magazine
Dribbble
Behance
Siteinspire Icons for Everything
Unsplash
网站:
UX Magazine:https://uxmag.com/
Dribbble:https://dribbble.com/
Behance:https://www.behance.net/
Siteinspire:https://www.siteinspire.com/
Icons for Everything:https://thenounproject.com/
Unsplash:https://unsplash.com/
数据挖掘和机器学习、数据分析都有一定程度的重合,因此需要先定义我们这里的数据挖掘指的是什么。
数据挖掘 vs 机器学习
机器学习和数据挖掘很类似,很多人以为两个说的是一样的东西,虽然两者本质上的区别不大,但是还是有一些细小的区别:
A:机器学习更侧重于技术方面和各种算法,一般提到机器学习就会想到语音识别,图像视频识别,机器翻译,等等各种模式识别,核心就是各种精妙的算法。数据挖掘更偏向于“数据”而不是算法,它包括了很多数据的前期处理,数据的爬取、清洗、整合,数据的有效性检测等等,最后才是用一些统计的或者机器学习的算法来抽取某些有用的“知识”。前期数据处理的工作比较多。数据挖掘 vs 数据分析
数据分析(狭义)与数据挖掘构成广义的数据分析。数据分析(狭义)与数据挖掘的本质都是一样的,都是从数据里面发现关于业务的知识(有价值的信息),从而帮助业务运营、改进产品以及帮助企业做更好的决策。但是他们还是有一些区别:
A:数据分析(狭义)的数据集往往中型或小型。数据挖掘的数据集往往很大。知识分类/使用方法
链接和介绍
(optional)Stanford CS229
【基础】【数学】
适用于:
1. “学习前提”中的数学基础知识掌握80%以下的如果目标只是掌握初阶的知识,那么不需要死磕数学理论,可以跳过这里。
Youtube:
https://www.youtube.com/watch?v=jGwO_UgTS7I&list=PLoROMvodv4rMiGQp3WXShtMGgzqpfVfbU
B站:https://www.bilibili.com/video/BV1JE411w7Ub/?from=search&seid=9965245452780421393
课表和作业:
http://cs229.stanford.edu/syllabus-autumn2018.html
CS229是coursera ML课程的前身,和coursera ML课程有一定程度的重合,但是这门课更偏向理论,coursera ML更加侧重实践,只会大致的讲解算法的原理,然后在编程中实现。
Coursera 机器学习入门课程 by Andrew Ng
【基础101】【机器学习】
作业:https://github.com/zlotus/Coursera_Machine_Learning_Exercises
参考答案:https://github.com/loveunk/machine-learning-excercise-notebook-python
听课笔记:https://zhuanlan.zhihu.com/mlearn
Coursera在2022年已经下线了老版课程,上线了出了新版课程,由一门课变成了一个specialization,多了更多新的算法。
李杰克的建议是,大家可以通过《Machine Learning》去学习机器学习中的基础知识,我拎些重要的出来:损失函数、梯度下降、线性回归、逻辑回归、SVM、反向传播法、正则化、KNN、K-Means、PCA,大家可以优先重点搞懂这些东西,你进入到深度的知识储备算是基本够了。
没有用到什么超出线性代数,高数,概率论课本的数学。如果有概念看不懂,比如梯度,后验概率,Jacobian。那就把视频暂停,去查一下维基百科,或者翻一下自己的课本,搞懂了,然后再继续看视频。有些知识点,比如支持向量机的对偶问题,实在实在看不懂,那就算了,你就相信他跟原问题同解,接着看怎么加kernel。如果有地方实在搞不懂,也千万不要放弃,接着往下看。
上Coursera在线教学网站学习,优点是每个章节学习之后可以在线答题,可以提交答案检验是否正确,而且还可以做编程练习,编程练习提交到系统后,系统可以自动测试程序是否运行正确。缺点是需要科学上网,而且有些视频并没有中文字幕。
上网易云课堂学习,优点是速度快,全部视频都有中文字幕。缺点是没有在线习题,也没有编程练习。
《数据挖掘导论》Introduction to Data Mining by Pang-Ning Tang、Michael Steinbach、Vipin Kumar
【基础101】
最好配合每一章后面的习题使用
最好可以选择一些工具去使用一下各个模型
pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg9tevuQYokrS_jQY.pdf
习题答案:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg9devuQYo_NqowgQ.pdf
最多人推荐的书籍。
不会有太多数学:这本书上的内容,高中生都能读懂。这本书作为入门书非常好。内容浅显易懂,略去了各个定理的证明部分,通过枚举大量具体的算法实例来简要说明算法的流程和意义,让初学者可以以最快速度总揽全局,掌握数据挖掘领域的基本要点。通过这本书说明的主要是算法的运行过程和意义,而非算法本身的数学推理,不会有太多的数学公式。
有算法的使用场景:本书把算法按照它们实现的功能和目的,分成比如回归、分类、聚类等等,然后讲可以实现聚类的算法有哪些,可以实现回归的有哪些,这种方式对于构建一个大概的机器学习体系还是有好处的,但是深度不够。对于算法都提出了优缺点,使用场景,以及出了问题怎么办。
基础和高级知识有区分:把常用模型和高级话题分成连续的两个章节,很适合统计学学生入门数据挖掘的。
有课后练习:在学习中,对于课后练习,一定要自己去做一做才能知道自己理解怎么样了,不会了就去咨询。甚至你自己可以选择一些工具是实现各个模型看看。
Jiawei Han的《数据挖掘概念与技术》Data Mining: Concepts and Techniques
【基础101】
2的平替,比较“掉书袋”、教科书的感觉,有些人不太推荐
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg-9qvuQYoiJ2z1wM.pdf
这本书是国内很多高校上课指定教材(可能这是为什么很多人推荐的原因)。
不仅详尽讲述了数据挖掘的基本概念和方法,又具有一定的深度,介绍了数据挖掘领域近年来最新的课题。
只要求读者具备少量的编程经验以及了解基本的数据和统计分析方向的知识。
据说翻译版不如原文好懂。
我并不是很推荐这本书。这本书什么都讲了,甚至很多书少有涉及的一些点都有涉猎,比如OLAP的方面。其实这本书对于初学者不是那么友好的,给人较强的教科书的感觉,如果你有很强的毅力读完这本书,也只能获得一些零碎的概念的认识,很难上手实际的项目。
《集体智慧编程》Segaran的《Programming Collective Intelligence》
【基础101】【实战】
边学边练,把书上的代码跑一跑
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg_tuvuQYotsHkvAE.pdf
没有数学推导:此书无公式推导,只告诉我们算法的应用场景。
通过实际例子来进行学习:这本书讲述了数据挖掘里面的很多实用的算法,而且最重要的是陈述的方式不像 Han 那种大牛掉书袋的讲法,而是举了很多实际的例子。
有编程实战:辅以python的代码,让你很快的就能理解到这种算法能够应用在哪个实际问题上,并且还能自己上手写写代码。
这本书在我看来适合的三个人群:A. 刚刚具有基础编程知识的学生 B. 不是希望进入数据挖掘领域,只是要急着做完一个项目 C. 大多数的产品经理。
《利用Python进行数据分析》
【实战】
3的平替
在实战中可以把这本书当作工具书,用以熟悉Python的库
http://phylab.fudan.edu.cn/doku.php?id=course:python:start
这本书介绍了最主要的python数据处理工具:numpy,pandas,matplotlib等,当通读完一遍之后,这本书就可以被当成工具书,偶尔查一查。
基于python语言介绍了numpy ,pandas等库的操作,本书中有大量具体的实践建议,以及大量综合应用方法。由于作者Wes McKinney是pandas库的主要作者,所以本书也可以作为利用Python实现数据密集型应用的科学计算实践指南。本书适合刚刚接触Python的分析人员以及刚刚接触科学计算的Python程序员。
回答一个用python的:想一边看书一边敲代码马上出结果的看这里:不得不提《用python进行数据分析》,对着习题练一遍,马上出效果,然后拿自己感兴趣的数据来练手,照葫芦画瓢,上手极快,且容易有成就感。一看见有人的回答是列书单我就烦。看完给你一堆数据你会处理吗?学这种东西就是要直接上项目、解决问题。BTW,我在学习过程中发现复旦大学物理实验室的对这本书学习的相关资料
Weka
LibSVM, scikit-learn, Shogun
这几个工具至少挑选2个熟悉一下
Kaggle 实战项目练习
【实战】
这里为大家推荐几篇非常好的文章,里面手把手的教了大家入门级的三个经典练习项目(其实是已经结束了的赛题),供大家学习。
1. Titanic(泰坦尼克之灾)
中文教程: 逻辑回归应用之Kaggle泰坦尼克之灾
https://blog.csdn.net/han_xiaoyang/article/details/49797143
英文教程:An Interactive Data Science Tutorial
https://www.kaggle.com/code/helgejo/an-interactive-data-science-tutorial
2. House Prices: Advanced Regression Techniques(房价预测)
中文教程:Kaggle竞赛 — 2017年房价预测
英文教程:How to get to TOP 25% with Simple Model using sklearn
https://www.kaggle.com/code/neviadomski/how-to-get-to-top-25-with-simple-model-sklearn
3. Digital Recognition(数字识别)
中文教程:大数据竞赛平台—Kaggle 入门
https://blog.csdn.net/u012162613/article/details/41929171
英文教程:Interactive Intro to Dimensionality Reduction
https://www.kaggle.com/code/arthurtok/interactive-intro-to-dimensionality-reduction
知识分类/使用方法
链接和介绍
李航老师的《统计学习方法》
【数学】【机器学习】
这三本书都是机器学习入门的经典书籍,之所以同时推荐三本,不是为了从这三本书中选一个,而是全部买下来对照着看:这本书对公式的推理相对详细;周志华的《机器学习》(西瓜书)内容更加广泛,但推理不太详细;Mitchell的《机器学习》重在算法的思路,对公式的推理很浅显,但易懂。建议学习的时候以李航老师的书为基础,对周志华老师的书进行系统的学习。
边看书边手推公式然后对着GitHub一边敲代码
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg9uKvuQYo7Jvf-gc.pdf
代码实现(李航老师微博推荐):
https://github.com/WenDesi/lihang_book_algorithm
(这本书是机器学习的入门书,之所以放在中阶而不是初阶,是因为不是直接关于数据挖掘的。)
着重于数学推导,能让我们深入地了解数据挖掘领域的一些算法。把几大类经典模型背后的理论刻画得淋漓尽致,看了之后对SVM的VC维理论、EM算法等有了深刻认识
这本书以干货为主,书中没有多余的例子与解释,很多都是从问题定义直接开始,到算法,到分析。书中例子、推导、算法相对比较难,很有必要仔细阅读。
每章末尾的参考文献也方便了想深入理解算法的童鞋直接查到经典论文。
周志华老师的《机器学习》(西瓜书)
【机器学习】
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgneSvuQYooOu_lwQ.pdf
(这本书是机器学习的入门书,之所以放在中阶而不是初阶,是因为不是直接关于数据挖掘的。)
这本书的结构很清晰,理论和实践都有设计,是一本不错的学习书
作者周志华教授是人工智能大牛,也是国际上人工智能奖项“大满贯” Fellow华人第一人。这是一本非常值得推荐给机器学习入门者梳理知识以及机器学习从业者的书。书本的印刷质量不错,语言表达与思维逻辑也很清晰,内容涵盖了绝大多数热门算法与模型。此书的结构基本与《elements of statistical learning》相同,不想看英文版的同学可以看这本。
不足:这本书已经比较老了,内容中有一些过时的地方。
《统计学习基础:数据挖掘、推理与预测》The Elements of Statistical Learning : Data Mining, Inference, and Prediction by Trevor Hastie & Robert Tibshirani
江湖人称ESL
【统计】【机器学习】
2的平替
学习时,可以考虑将重要方法进行数学推导以理解原理,并结合数据集进行R编程操作。
网上也提供一些数据集,可以配合着R操作来学习,熟练R的同时,掌握各种机器学习方法。
Pdf(中文):
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg6_WvuQYo4I_0HQ.pdf
pdf (英文):
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgk_mvuQYotPHEggY.pdf
比较偏Frequentist
斯坦福三位统计鼻祖级教授著作。本书对机器学习各领域的方法都有详尽的介绍,更侧重于统计知识。此外,它涵盖了许多数据挖掘技术。如神经网络,关联规则挖掘,SVM,回归,聚类等主题。
Tom Mitchell的《机器学习》
【机器学习】
(这本书是机器学习的入门书,之所以放在中阶而不是初阶,是因为不是直接关于数据挖掘的。)
pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgpeqvuQYoqI-K1wY.pdf
这本书可以看作是对于十多年前的机器学习的一个综述,作者简单明了的讲述了很多流行的算法,并且对于各个算法的适用点和特点都有详细的解说,轻快地在一本薄薄的小书里给了大家一个机器学习之旅。
作者Tom Mitchell是CMU的大师,有机器学习和半监督学习的网络课程视频。这本书是领域内翻译的较好的书籍,讲述的算法也比《统计学习方法》的范围要大很多。据评论这本书主要在于启发,讲述公式为什么成立而不是推导;不足的地方在于出版年限较早,时效性不如PRML。但有些基础的经典还是不会过时的,所以这本书现在几乎是机器学习的必读书目。
Ian H. Witten & Eibe Frank的《数据挖掘 实用机器学习技术》Data Mining: Practical Machine Learning Tools and Techniques
【实战】
作为查缺补漏用,建议只看一些上述书中没讲到的算法
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgnvCvuQYoj5PA-wU.pdf
本书作者就是著名的Weka的编写者。整本书的思想脉络也是尽可能的由易到难,从简单的模型入手扩展到现实生活
中实际的算法问题,最难能可贵的是书的最后还稍微讲了下如何使用weka,这样大家就能在学习算法之余能够用weka做做小实验,有更加直观的认识。
(optional)weka
【实战】
简单使用一下即可,用的人不多了,大家都用python库了
由Java开发的 Weka(Waikato Environment for Knowledge Analysis)是一个知名机器学机软件,其支持几种经典的数据挖掘任务,显著的数据预处理,集群,分类,回归,虚拟化,以及功能选择。其技术基于假设数据是以一种单个文件或关联的,在那里,每个数据点都被许多属性标注。 Weka 使用Java的数据库链接能力可以访问SQL数据库,并可以处理一个数据库的查询结果。它主要的用户接品是Explorer,也同样支持相同功能的命令行,或是一种基于组件的知识流接口。
实现经典算法
【实战】
实现下面几个经典算法:
a. 关联规则挖掘 (Apriori, FPTree, etc.)
b. 分类 (C4.5, KNN, Logistic Regression, SVM, etc.)
c. 聚类 (Kmeans, DBScan, Spectral Clustering, etc.)
d. 降维 (PCA, LDA, etc.)
e. 推荐系统 (基于内容的推荐,协同过滤,如矩阵分解等)
然后在公开数据集上测试,看实现的效果。
参加Kaggle等比赛
【实战】
和“初阶”里提到的Kaggle练习不同,这里是真刀真枪的比赛
平台有:kaggle、阿里巴巴天池、kesci、datacastle、biendata、datafountain 等
选比较常规的分类或回归赛题,建议选分类赛题
(optional)吴军的《数学之美》
【科普】【应用】
因为推荐的人比较多,但是又是科普性质的,所以放在这里
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAghPOvuQYo0YKeqwQ.pdf
科普性质的书,也有推导,深入浅出,引人入胜,非常棒,对搜索和NLP领域的算法有了较多认识。作者吴军大家都很熟悉。以极为通俗的语言讲述了数学在机器学习和自然语言处理等领域的应用。
知识分类/使用方法
链接和介绍
《pattern recognition and machine learning》
江湖人称PRML
【机器学习】【理论】
配合习题
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg8PSvuQYow5_JmgY.pdf
习题:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgn-WvuQYozq7spQc.pdf
matlab实现:https://github.com/PRML/PRMLT
python实现:https://github.com/ctgk/PRML
模式识别的经典教材,偏理论,讲得比较浅显,算是机器学习的初级书籍。这本书较轻为全面介绍了模式识别和机器学习领域,需要掌握一些多变量微积分和基本线性代数的知识。
比较偏Bayesian
这本书已经有很多人介绍过了,这本书虽然是大部头,但作者写的行云流水,把贝叶斯玩的很6,思路非常清晰,而且全。每当我在推导算法的时候遇到障碍,都会从这本书中找答案,幸运的是这本书通常都会给我答案。
侧重于概率模型,是贝叶斯方法的扛鼎之作,据评“具有强烈的工程气息,可以配合stanford 大学 Andrew Ng 教授的 Machine Learning 视频教程一起来学,效果翻倍。
读起来可能比较辛苦,一共有738页,包括431个分级练习。
本书有大段描述性文字,常用文字代替数学公式去描述原理。大家可以自己尝试数学推导。
Duda的《模式分类》Pattern Classification
【理论】
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgtPavuQYoxuiY1gc.pdf
一本砖头书,建议看前三章,主要涉及贝叶斯参数估计,另外LDA、PCA的推导也可以看看,讲的不错
这本《模式分类》是很多高校的数据挖掘导论课程的教科书,重在理论的学习。如果不通读这本书,你会发现在研究很多问题的时候,甚至一些相对简单的问题(比如贝叶斯在高斯假设下为什么退化成线性分类器)你都要重新复习。
数据挖掘与数据化运营实战 思路、方法、技巧与应用
【应用】【工业界】
对业界工作的人有帮助
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgrvevuQYo1K3W_AM.pdf
推荐理由: 诸多数据挖掘书籍中为数不多的穿插大量真实的实践应用案例和场景的书籍。阿里巴巴BI部门数据分析专家卢辉多年数据挖掘应用实践经验结晶,用通俗易懂的“非技术”语言和大量活泼生动的案例展现了数据挖掘与数据化运营的商业实践。
以一个阿里巴巴数据运营从业人员的角度,讲解电子商务中,如何利用数据进行数据化运营来创造价值。
项亮的《推荐系统实践》
【应用】【推荐系统】
边读边练,用网上公开的数据集做一个toy project
Pdf:
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgovmvuQYo9vKi0wE.pdf
读完之后对推荐系统用到的模型、整个知识体系都有深刻认识。
这本书不用说了,研究推荐系统必须要读的书,而且是第一本要读的书。
熟悉大数据处理框架
【大数据处理框架】
分为两个部分:Linux&Hadoop生态体系和分布式计算。
A. Linux&Hadoop生态体系
Linux体系、Hadoop离线计算大纲、分布式数据库Hbase、数据仓库Hive、数据迁移工具Sqoop、Flume分布式日志框架
推荐书籍:
1. 《Big Data》在大数据的背景下,我很少看到关于数据建模,数据层,数据处理需求分析以及数据架构和存储实现问题。这本书却提供了令人耳目一新的全面解决方案。
2. 《Hadoop权威指南》https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg1vuvuQYooZq5xgU.pdf
《Hadoop权威指南(中文版)》从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具。
3. 《Hive编程指南》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgjvyvuQYoy8akfQ.pdf
《Hive编程指南》是一本Apache Hive的编程指南,旨在介绍如何使用Hive的SQL方法HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大数据集合。
B. 分布式计算
1. 分布式计算框架Python编程语言、Scala编程语言、Spark大数据处理、Spark—Streaming大数据处理、Spark—Mlib机器学习、Spark—GraphX 图计算、实战一:基于Spark的推荐系统(某一线公司真实项目)、实战二:新浪网(www.sina.com.cn)
2. storm技术架构体系
Storm原理与基础、消息队列kafka、Redis工具、zookeeper详解、实战一:日志告警系统项目、实战二:猜你喜欢推荐系统实战
3. Flink(比storm用的更多)推荐书籍:
1. 《Learning Spark》https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg0-yvuQYojuSCmgE.pdf
《Spark 快速大数据分析》是一本为Spark 初学者准备的书,它没有过多深入实现细节,而是更多关注上层用户的具体用法。不过,本书绝不仅仅限于Spark 的用法,它对Spark 的核心概念和基本原理也有较为全面的介绍,让读者能够知其然且知其所以然。
2. 《Spark机器学习:核心技术与实践》本书采用理论与大量实例相结合的方式帮助开发人员掌握使用Spark进行分析和实现机器学习算法。通过这些示例和Spark在各种企业级系统中的应用,帮助读者解锁Spark机器学习算法的复杂性,通过数据分析产生有价值的数据洞察力。
熟悉数据库
可以掌握不深,但是还是要了解,基本的操作会用。
推荐阅读书目(极少人提到数据库这方面,下面的书都是只提到过一次的):
《SQL必知必会》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAg5v2vuQYo0MSHxAc.pdf
《数据库系统概念》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgmP6vuQYoj8zWtQQ.pdf
《高性能MySQL》
https://18636251.s21i.faiusr.com/61/ABUIABA9GAAgk-_vuQYonO7s0QI.pdf
数据集
UCI(http://archive.ics.uci.edu/ml/datasets.html):加州大学欧文分校开放的经典数据集,被很多机器学习实验室采用。
Awesome Public Datasets (https://github.com/awesomedata/awesome-public-datasets):这是github一大神整理的一个丰富的数据集资源获取渠道合集。
国家数据(http://data.stats.gov.cn/index.htm):数据来源于中国国家统计局,包含了我国经济民生等多个方面的数据。
CEIC(https://www.ceicdata.com/zh-hans):超过128个国家的经济数据,能够精确查找GDP, CPI, 进口,出口,外资直接投资,零售,销售,以及国际利率等深度数据。
中国统计信息网(http://www.tjcn.org/):国家统计局的官方网站,汇集了海量的全国各级政府各年度的国民经济和社会发展统计信息。
机器学习和数据分析(狭义)、数据挖掘、深度学习、人工智能都有一定程度的重合,因此需要先定义我们这里的机器学习指的是什么。
机器学习 vs 数据分析
数据分析和机器学习是两个方向的东西,前者侧重于使用统计分析等方法解决业务问题,当然为了更好的解决问题也会用到算法模型,输出物一般包括分析报告,统计报表,辅助决策建议等偏重业务决策的结论和分析。后者侧重于工程和算法研究及应用,主要通过算法和模型解决面向工程和产品化应用的问题,因此输出一般不是具体的可见物,而是工程中得核心-智能化的部分。
机器学习 vs 数据挖掘
机器学习和数据挖掘很类似,很多人以为两个说的是一样的东西,虽然两者本质上的区别不大,但是还是有一些细小的区别:
1. 机器学习更侧重于技术方面和各种算法,一般提到机器学习就会想到语音识别,图像视频识别,机器翻译,等等各种模式识别,核心就是各种精妙的算法。数据挖掘更偏向于“数据”而不是算法,它包括了很多数据的前期处理,数据的爬取、清洗、整合,数据的有效性检测等等,最后才是用一些统计的或者机器学习的算法来抽取某些有用的“知识”。前期数据处理的工作比较多。机器学习 vs 深度学习
机器学习分很多方法(算法),深度学习是机器学习算法的一种。
机器学习 vs 人工智能
人工智能是科学,机器学习是让机器变得更加智能的、很有效的算法,机器学习在某种程度上成就了人工智能。
机器学习 vs 强化学习
按学习的方式来分,强化学习是机器学习的一类,不仅能利用现有数据,还可以通过对环境的探索获得新数据,并利用新数据循环往复地更新迭代现有模型的机器学习算法。学习是为了更好地对环境进行探索,而探索是为了获取数据进行更好的学习。
对于网站原创内容版权维护的声明:https://www.xiaogeedu.com/h-nd-337.html
粗略来说,CS的课程可以分成3个Level:
Level 1 CS基础以及编程基础
编程基础
工具基础
CS基础
Level 2 CS核心基础课
System基础 和/或 AI基础
经典核心基础课
Level 3 方向课
System方向的课程们 和/或 AI方向的课程们
Level 1 CS基础
编程基础
CMU
CS15112: Fundamentals of Programming and Computer Science
MIT
CS 6.0001: Introduction to Computer Science and Programming in Python
MIT
CS 6.031: Software Construction
Stanford University
CS106L: Standard C++ Programming
Stanford University
Stanford CS106B/X: Programming Abstractions in C++
Harvard
CS50's Introduction to Programming with Scratch
Duke
Introductory C Programming Specialization
Duke
Programming Fundamentals
Stanford University
CS106A: Programming Methodologies
工具基础
MIT
MIT-Missing-Semester
CS基础
Harvard
CS50: Introduction to Computer Science
CMU
CS15110: Principles of Computing
UCB
CS 61A: The Structure and Interpretation of Computer Programs
Level 2 核心基础课
系统入门
CMU
CS15-213: Introduction to Computer Systems
MIT
CS 6.033: Computer Systems
Engineering (CI-M)
AI/ML/DL入门
UCB
CS 88: Computational Structures in Data Science
UCB
CS188: Introduction to Artificial Intelligence
UCB
CS189: Introduction to Machine Learning
Stanford University
CS229: Machine Learning
Stanford University
CS224w: Machine Learning with Graphs
历年集合http://web.stanford.edu/class/cs224w/
Harvard
Data Science: Machine Learning
Duke
Introduction to Machine Learning
CMU
CS 10-708: Probabilistic Graphical Models
CMU
11-785 Introduction to Deep Learning
Columbia
COMS W4995 Applied Machine Learning
MIT
CS 6.034: Artificial Intelligence
MIT
CS 6.036 Introduction to Machine
Learning
MIT
6.S191: Intro to deep learning
数据结构
UCB
CS 61B: Data Structures
UCB
CS 61C: Machine Structures
算法
UCB
CS 170: Efficient Algorithms and Intractable Problems
Princeton
Coursera: Algorithms I & II
Princeton
COS 226 Algorithms
MIT
CS 6.006: Introduction to Algorithms
MIT
CS 6.046: Design and Analysis of Algorithms
操作系统
UCB
CS162: Operating System
MIT
CS 6.S081: Operating System Engineering
数据库
UCB
CS186: Introduction to Database System
CMU
CS 15-445: Database Systems
CMU
CS 15-721:Advanced Database Systems
MIT
CS 6.830/6.814: Database Systems