我真不应该说谎呀前几天wwW18nnn还正常的,现在却18nnncom不能联接啦

404 Not Founds404 Not FoundThe requested URL was not found on this server.您要找的内容已被删除中国风的纯音乐 谁能告诉我这首个叫什么名字,http://www.tudou.com/programs/view/Q3nPhUvaCdM/_百度知道
中国风的纯音乐 谁能告诉我这首个叫什么名字,http://www.tudou.com/programs/view/Q3nPhUvaCdM/
实在是太美了,顺便在推荐些
我有更好的答案
ふたたび》源氏物语日本大多的曲子都很中国风:《樱花樱花》、《紫のゆかり神思者的《故宫的回忆》推荐:百鬼夜行抄的主题曲,好像就叫百鬼夜行抄(森英治的),很大气类似这样的曲子有《旅程的终结》 《风之誓言》 《琵琶语》《踏古》《紫禁花园》还有久石让的曲子Rin’的曲子都很好听 例。。 还有女子十二乐坊的歌曲很大气:《春去春又来》、《辉煌》、《步向明日之门》、《奇迹》,包括那个《故宫的回忆》也是日本滴。
采纳率:29%
//www《故宫的回忆》--神思者(5)永恒之地 大唐豪侠配乐http.com/programs/view/-C3ucIrjoFw/" target="_blank">http://www.tudou.com/programs/view/-C3ucIrjoFw/(17)格恩马赛 边缘<a href="http://www.com/v_show/id_XMTYzMzYzMDE2
本回答被提问者采纳
宫的记忆(应该叫这个)神思者的日本鬼子..就是气人啊!中国音乐让日本人作的那么美,那么纯.........
故宫的回忆
是神思者的《故宫的回忆》。推荐:《乾隆大帝》《万里の长城》《希望的种子》(高潮部分从01:23开始)以上均为日本所创的古风音乐。以下,是中国本土所创的类似楼主您要的音乐:《落入凡尘》(请从高潮部分02:00开始听)
其他2条回答
为您推荐:
其他类似问题
tudou的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&figure&&img src=&https://pic2.zhimg.com/v2-3cf2ba86f9dfb41f178c_b.jpg& data-rawwidth=&960& data-rawheight=&633& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&https://pic2.zhimg.com/v2-3cf2ba86f9dfb41f178c_r.jpg&&&/figure&&h2&&b&0. 背景&/b&&/h2&&p&写这篇文章的初衷是大部分私信我的朋友都想了解&b&如何入门/转行机器学习&/b&,搭上人工智能这列二十一世纪的快车。再加上这个问题每隔一阵子就会在知乎时间线上出现一次,因此想写一篇文章来“一劳永逸”的分享我的观点。&/p&&p&&b&文章的宗旨是:1. 指出一些自学的误区 2. 不过多的推荐资料 3. 提供客观可行的学习表 4. 给出进阶学习的建议。&/b&这篇文章的目标读者是计划零基础自学的朋友,对数学/统计基础要求不高,比如:&/p&&ul&&li&在读的学生朋友&/li&&li&非计算机行业的读者&/li&&li&已经工作但想将机器学习/数据分析和自己的本职工作相结合的朋友&/li&&/ul&&p&因此,这篇文章对于已经身处机器学习领域可能帮助不大。同时再次声明这只是我的个人看法,请大家有选择的性阅读,探索适合自己的学习方法。&/p&&h2&&b&1. 自学机器学习的误区和陷阱&/b&&/h2&&p&&b&1.1. 不要试图掌握所有的相关数学知识再开始学习&/b&&/p&&p&在很多&a href=&https://www.zhihu.com/question//answer/& class=&internal&&相关的回答&/a&中,我都一再强调不要试图补足数学知识再开始学习机器学习。一般来说,大部分机器学习课程/书籍都要求:&/p&&ul&&li&线性代数:矩阵/张量乘法、求逆,奇异值分解/特征值分解,行列式,范数等&/li&&li&统计与概率:概率分布,独立性与贝叶斯,最大似然(MLE)和最大后验估计(MAP)等&/li&&li&优化:线性优化,非线性优化(凸优化/非凸优化)以及其衍生的求解方法如梯度下降、牛顿法、基因算法和模拟退火等&/li&&li&微积分:偏微分,链式法则,矩阵求导等&/li&&li&信息论、数值理论等&/li&&/ul&&p&一般人如果想要把这些知识都补全再开始机器学习往往需要很长时间,容易半途而废。而且这些知识是工具不是目的,我们的目标又不是成为运筹学大师。&b&建议在机器学习的过程中哪里不会补哪里,这样更有目的性且耗时更低。&/b&&/p&&p&&b&1.2. 不要把深度学习作为入门的第一门课&/b&&/p&&p&虽然很多人都是冲着深度学习来的,但把深度学习作为机器学习第一课不是个好主意。原因如下:&/p&&ul&&li&深度学习的黑箱性更加明显,很容易学得囫囵吞枣&/li&&li&深度学习的理论/模型架构/技巧还在一直变化当中,并未尘埃落定&/li&&li&深度学习实验对硬件要求高,不太适合自学或者使用个人电脑进行学习&/li&&/ul&&p&更多讨论可以看我的回答:&a href=&https://www.zhihu.com/question//answer/& class=&internal&&阿萨姆:深度学习的教学和课程,与传统 CS 的教学和课程有什么区别?&/a&&/p&&p&&b&1.3. 不要收集过多的资料 & 分辨资料的时效性&/b&&/p&&p&机器学习的资料很多,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书的人我也常常能够看到。&/p&&p&机器学习的发展和变化速度很快。在入门期间,&b&建议“小而精”的选择资料,选择近期出版的且口碑良好的书籍&/b&。我不止一次的提到这个例子:&/p&&blockquote&在很多深度学习的教科书中,尤其是10年以前的教科书中都还依然把Sigmoid当作默认的激活函数。但事实上,整流函数(ReLu)以及其拓展变形函数,如Leaky ReLu早就成为了主流的深度学习激活函数。但因为知识的滞后性,很多课程/书籍甚至都没有介绍ReLu的章节。&/blockquote&&p&一般来说,我比较推荐近5年内出版的书籍,或者10年以后出版的书籍。有些书籍虽然是经典,比如Tom Mitchell的《机器学习》,但因为其出版已经超过20年,还是不建议大家购买。&/p&&p&在这篇文章中我所推荐的书籍和课程都相对比较经典,同时属于紧跟时代潮流的。入门阶段我推荐了1门课程和2本书,进阶阶段推荐了1本书,深度学习推荐了1门课程一本书,高级阶段推荐了2本额外书籍。&/p&&h2&&b&2. 机器学习的一些前期准备&/b&&/h2&&p&&b&2.1. 硬件选择&/b&&/p&&p&另一个大家常问的问题是:是否可以用自己的笔记本电脑进行机器学习。答案是肯定的,大部分市面上的数据集都可以放到你的内存中运行。在入门阶段,我们很少会用到非常大的数据集,一般最大也就是MNIST,完全可以使用个人笔记本电脑进行运行。&/p&&p&请不要打着学习的名义重新购买机器...&/p&&p&&b&2.2. 软件选择&/b&&/p&&p&如果要做深度学习,Linux还是首选,因为其对很多学习模型支持比较好(主要是深度学习的Library)。但即使你使用的是Windows系统,也可以用虚拟机装Ubuntu来进行学习。小型的深度学习模型足够了,大型的深度学习我们很少在本地/个人计算机上运行。&/p&&p&至于编程语言,首推Python,因为其良好的拓展支持性,主流的工具包都有Python版本。在特定情况下,选择R作为编程语言也是可以的。其他可能的语言还包括C++、Java和Matlab,但我个人不大推荐。&/p&&p&此处也想额外提一句,因为编程属于机器学习基本要求之一,所以推荐大家可以自学一些基础编程的知识(如Python),在文中不再赘述。&/p&&p&&b&2.3. 语言能力&/b&&/p&&p&学好英语,至少打下阅读和听力的基础。&b&虽然人工智能领域中国现在已经做得很不错,但主流的书籍、期刊和会议,资料都是英文的&/b&。我们可以接受翻译版,但最好的方法还是自己有能力直接阅读。即使你将来不做机器学习,英文阅读能力还是会有很大的帮助。&/p&&h2&&b&3. 机器学习课程表&/b&&/h2&&h2&3.1. 第一阶段:基础入门(3-6个月)&/h2&&p&入门的第一步是学习一些经典课程并配套经典书籍,一般来说这个过程在半年之内比较合适。在这个部分我介绍的课程和书籍都属于难度非常低的,对数学和编程都没什么太大的要求。&/p&&p&&b&3.1.1. 吴恩达Cousera机器学习课程&/b&&/p&&p&Andrew Ng的机器学习课程(&a href=&http://link.zhihu.com/?target=https%3A//www.coursera.org/learn/machine-learning& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Machine Learning | Coursera&/a&)是很多人的启蒙课程,难度适中且完全免费。Coursera上总共有49285个人给出了评分,平均得分4.9分,满分5分。据我个人观察,大部分Coursera上的课程评分处于4-4.5分之间,能做到4.9分的课程寥寥无几。另一个值得关注的是,这门课有接近五万人给出评分,统计学知识告诉我们这个样本较大所以评分应该趋近于其真实值,比较可信。根据Freecodecamp的&a href=&http://link.zhihu.com/?target=https%3A//medium.freecodecamp.org/every-single-machine-learning-course-on-the-internet-ranked-by-your-reviews-3c4a7b8026c0& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&统计&/a&,这门课是所有在线Machine Learning课程中最受到大家好评的课程。另一个比较直接的观察是如果大家在知乎上搜索“机器学习如何入门?”,大部分答案都提到了Andrew的这门入门课程,所以这是一门绝对的口碑课程。&/p&&p&&b&3.1.2. Python机器学习 & Introduction to Statistical Learning with R&/b&&/p&&p&在学习吴恩达的在线课程时,推荐同时阅读相关的机器学习书籍&b&补充理论知识&/b&。我再次推荐这两本非常好的入门书籍,在我的专栏也有对于这两本书的介绍。&/p&&ul&&li&&b&Python机器学习&/b&:这本书出版于2015年并多次再版,在亚马逊中国上我们可以找到影印版和翻译版。这本书去掉了大量的数学推导的部分,仅保留了机器学习的核心应用。阅读本书可以快速对如何使用Python机器学习框架Sklearn有一个基本的了解,可以很快上手开始工作。本书涉及的内容很广泛,虽然只有400多页,但内容涉及了数据预处理(Data Preprocessing), 维度压缩和核函数(Dimension Reduction & Kernel),评估方法如交叉验证,集成学习,情感分析,聚类,甚至还包括了神经网络和Theano。更多介绍:&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&带你读机器学习经典(三): Python机器学习(Chapter 1&2)&/a&&/li&&li&&b&Introduction to Statistical Learning with R(ISL)&/b&:相信正在机器学习苦海中遨游的朋友们肯定都听过大名鼎鼎的The Element of Statistical Learning, 这本频率学派的统计学习“圣经”被大家叫做ESL。而ISL正是基于满足更广大阅读人群的目的而推出的;ISL是ESL的入门版,不仅大量的去除了繁复的数学推导,还加入了R编程的部分,方便大家可以尽快上手。&b&这本书是我推荐书单第一名&/b&:ISL的电子版是免费的:&a href=&http://link.zhihu.com/?target=http%3A//www-bcf.usc.edu/%7Egareth/ISL/ISLR%2520First%2520Printing.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击下载&/a&。更多介绍:&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&带你读机器学习经典(一): An Introduction to Statistical Learning (Chapter 1&2)&/a&&/li&&/ul&&p&&b&3.1.3. 周志华《机器学习》&/b&&/p&&p&周志华老师的《机器学习》也被大家亲切的叫做“西瓜书”。虽然只有几百页,但内容涵盖比较广泛。然而和其他人的看法不同&b&,我建议把西瓜书作为参考书而不是主力阅读书&/b&。西瓜书因为篇幅的限制,涵盖了很多的内容但无法详细的展看来讲,对于初学者自学来说实际阅读很大。这本书更适合作为学校的教材或者中阶读者自学使用,入门时学习这本书籍难度稍微偏高了一些。&/p&&p&我个人建议的用法是在学习网课和阅读ISL遇到疑惑时可以参考西瓜书的相关章节,但入门阶段没有必要一章一章的阅读,建议在这个阶段只阅读前十章即可。&/p&&h2&3.2. 第二阶段:进阶学习(3-6个月)&/h2&&p&在这个阶段,你已经对机器学习有了基本的了解。如果你认真的阅读了ISL并上完了吴恩达的课程,我相信你已经在理论上明白了什么是线性回归,什么是数据压缩,对特征工程以及简单的回归/预测问题有了理论上的基础。这个时候最重要的就是进行实践!&/p&&p&&b&3.2.1. Kaggle挑战赛/练习&/b&&/p&&p&Kaggle(&a href=&http://link.zhihu.com/?target=https%3A//www.kaggle.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Your Home for Data Science&/a&)在数据分析领域早已大名鼎鼎,甚至可以说是数据分析第一社区,前一阵子刚刚被谷歌收购。Kaggle上有很多很好的数据集和挑战赛,你可以尝试这些挑战取得名次,甚至拿到奖金,对于将来找工作也非常有帮助。而且Kaggle的另一大优势是网友会分享他们的经验和看法,你也可以提出问题让大家来帮你提出一些修正方法。&/p&&p&国内也有类似的平台,比如天池大数据竞赛,其他类似的平台还包括DataCastle。&/p&&p&&b&使用Kaggle的目的主要是将技能落在实处,防止练就一身屠龙之技。机器学习最大的幻觉就是觉得自己什么都懂了,但等到真的使用时发现并不奏效&/b&,而Kaggle是一个低成本的应用机器学习的机会。&/p&&p&&b&3.2.2. Sklearn文档学习&/b&&/p&&p&Sklearn(&a href=&http://link.zhihu.com/?target=http%3A//scikit-learn.org/stable/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&scikit-learn: machine learning in Python&/a&)是Python上最流行的机器学习/数据科学工具包,上文介绍的Python Machine Learning书中就大量使用Sklearn的API。和使用Kaggle的目的一致,学习的Sklearn的文档也是一种实践过程。比较推荐的方法是把主流机器学习模型Sklearn中的例子都看一遍。&/p&&p&Sklearn的文档是少数写的跟教程一样的技术文档,很具有阅读价值。举个简单的例子,假设你想学习Python中使用逻辑回归,就可以参考: &a href=&http://link.zhihu.com/?target=http%3A//scikit-learn.org/stable/auto_examples/linear_model/plot_iris_logistic.html%23sphx-glr-auto-examples-linear-model-plot-iris-logistic-py& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Logistic Regression 3-class Classifier&/a&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-a22ac489e184ca380bb6_b.jpg& data-rawwidth=&400& data-rawheight=&300& class=&content_image& width=&400&&&/figure&&p&Sklearn的文档不仅提供了练习数据、sklearn的相关代码实例,还提供了可视化图。&/p&&p&&b&3.2.2. 周志华机器学习&/b&&/p&&p&再次提到周老师是因为西瓜书是值得常常翻看的一本书,在kaggle挑战和阅读Sklearn文档的过程中你还会时不时的遇到一些新的名词,比如流形学习(manifold learning)等。这个时候你会发现西瓜书真的是一本中级阶段大而全的书籍:)&/p&&h2&3.3. 第三阶段(可选*):深度学习(3-6个月) &/h2&&p&因为深度学习是当下的热点,很多公司都在寻找深度学习人才。虽然深度学习只是机器学习的一个子集,但有兴趣朝这个方向发展的朋友可以在完成以上学习后单独学习一下深度学习。&/p&&p&&b&3.3.1. 吴恩达深度学习课程&/b&&/p&&p&吴恩达在八月份的时候通过Deeplearning.ai和Coursera平台推出了最新系列的五门深度学习课程(&a href=&http://link.zhihu.com/?target=https%3A//www.deeplearning.ai/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&deeplearning.ai&/a&)。有条件的朋友可以通过Coursera学习获得证书,最近网易云课堂也上线了这门课的翻译版。如果想要上其中的课程,需要先注册报名「深度学习工程师微专业」 &a href=&http://link.zhihu.com/?target=http%3A//mooc.study.163.com/smartSpec/detail/.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深度学习工程师微专业 - 一线人工智能大师吴恩达亲研-网易云课堂 - 网易云课堂&/a&,之后就可以分别点开每门课单独进行学习。和Coursera上的DL同步,现在云课堂也上线了五门中的前三门课程,而卷积网络(CNN)和循环网络(RNN)还未开放。&/p&&p&更多关于网易云课堂上深度学习课程的介绍可以看:&a href=&https://www.zhihu.com/question//answer/& class=&internal&&阿萨姆:如何评价网易云课堂上线的吴恩达Deep Learning课程?&/a&&/p&&p&&b&3.3.2. Deep Learning -
by IanGoodFellow&/b&&/p&&p&深度学习这本书是由当下深度学习领域的几位领军人物所著,包含三大巨头之一的Bengio,还有教父Hinton来作序推荐。这本书的中文本翻译由张志华教授团队负责,在github上免费放出了翻译版本,印刷版也可以从亚马逊中国上买到。&/p&&p&英文版:&a href=&http://link.zhihu.com/?target=http%3A//www.deeplearningbook.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Deep Learning&/a&&/p&&p&中文版:&a href=&http://link.zhihu.com/?target=https%3A//github.com/exacity/deeplearningbook-chinese& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&exacity/deeplearningbook-chinese&/a&&/p&&p&这本书的阅读建议:&/p&&ul&&li&为了补充基础可以阅读第1-5章其中也包含了一些数学知识&/li&&li&只关注主流神经网络知识可以阅读6-10章,介绍了DNN/CNN/RNN&/li&&li&需要进一步了解一些调参和应用技巧,推荐阅读11和12章&/li&&/ul&&p&第13-20章为进阶章节,在入门阶段没有必要阅读。其实比较实际的做法是吴恩达的课程讲到什么概念,你到这本书里面可以阅读一些深入的理论进行概念加深,按章节阅读还是比较耗时耗力的。&/p&&h2&3.4. 第四阶段:深入研究&/h2&&p&恭喜你!如果你已经完成了上面的计划表,代表你已经有了相当的机器学习能力。这个阶段,最重要的就是不要贪多嚼不烂。如果你浏览知乎,会发现大家都说你必须读Elements of Statistical Learning, MLAPP之类的大部头。我承认阅读这样的书会有帮助,但在你有了一定的基础知识后,相信你已经知道自己需要接着做什么了也有了志同道合的朋友,我希望把选择权交还给你,而不是继续推荐成堆的课程和书籍。当然,如果你希望继续深入的话,中文可以继续阅读周志华老师的《机器学习》和李航老师的《统计学习基础》,英文可以入手《Elements of Statistical Learning》。&b&在这个阶段,重点要形成成体系的知识脉络,切记贪多嚼不烂,切记!&/b&&/p&&p&从阅读论文角度来说,订阅Arxiv,关注机器学习的顶级会议,如ICML/NIPS等,相关的方法在知乎上可以很容易搜索到,不在此赘述。&/p&&h2&&b&4. 实践经验&/b&&/h2&&p&&b&4.1. 研究经历&/b&&/p&&p&如果你还是学生,尝试尽早接触科研,进实验室。一般来说,大三的时候你应该已经有了基本的机器学习知识,尽管还比较浅。这个时候可以向老师/学长/学姐毛遂自荐进实验室,即使是无偿劳动和做基本的苦力活。进实验室有两个明显的好处:&/p&&ul&&li&&b&对某个小方向会有比较深入的了解&/b&。一般实验室做纯理论的不大需要本科生,做机器视觉或者自然语言处理(NLP)等小方向的比较需要本科生,所以这是很好的深入了解一个方向的机会。&/li&&li&补充了研究经历也可以明白自己是否适合这个领域。如果运气好的话,你也有可能成为论文的作者之一,甚至可以去开会(公款旅游顺道见一下业内大佬)。&b&这对于继续深造和去国外继续学习都很有帮助,有科研经历和论文是很大的筹码,对于找工作来说也绝对有利无害。&/b&&/li&&/ul&&p&&b&4.2. 企业实习&/b&&/p&&p&上文提到过,机器学习光说不练假把式,最好的方法还是要实践。&b&因此,应该先试着做科研,再尝试工业界实习。对待科研机会,有则就上,没有也不是太大的遗憾。&/b&我建议大部分做机器学习的朋友尽早实习,主要出于以下几个考量:&/p&&ul&&li&&b&打破幻想,了解工业界的主流模型&/b&。在其他很多答案中我都提到过,其实工业界用的大部分技术并不酷炫,你很少能看到深度强化学习那种AlphaGo一样酷炫的模型。不夸张的说,广义线性模型(generalized linear models)还是占据了大壁江山,这要归功于其良好的解释能力。从神经网络角度出发,一般也逃不过普通任务深度网络、视觉任务卷积网络CNN、语音和文字任务LSTM的套路。&/li&&li&&b&补上学术界忽视的内容,比如可视化和数据清洗&/b&。工业界的最终目的是输出商业价值,而获得商业洞见的过程其实是非常痛苦的,比如第一步就是令人深恶痛绝的数据清洗。毫不夸张的说,工业界百分之六十的时间都在清理数据,这和学术界干净且规则化的现成数据完全不同。没有在工业界体验过的人,无法真的了解原来机器学习从头到尾有那么多陷阱,泛化能力只是终极目标,而往往我们连规整的数据都无法得到。&/li&&li&&b&了解技术商业化中的取舍,培养大局观&/b&。做技术的人往往一头扎进技术里面,而忽视了从全局思考。举个例子,模型A的准确率95.5%,每次训练时间是3天,需要6台有GPU的服务器。而模型B的准确率是百分之95.2%,但只需要一台普通的macbook训练4个小时就可以了。从学术角度出发我们往往追求更好的模型结果选A,而工业界还要考虑到训练开销、模型可解释性、模型稳定度等。到工业界实习不仅可以培养大家的宏观掌控能力,对将来自己带学生控制开销或者选题也大有帮助&/li&&/ul&&p&&b&4.3. 在本职工作中使用机器学习&/b&&/p&&p&对于大部分已经工作的朋友来说,重新回到学校攻读学位并不现实,进研究室进行学习更是缺少机会。那么这个时候,你就可以试着把机器学习应用到你自己的工作当中。&/p&&p&已经有了工作/研究经验的朋友,要试着将自己的工作经历利用起来。举例,不要做机器学习里面最擅长投资的人,而要做金融领域中最擅长机器学习的专家,这才是你的价值主张(value proposition)。最重要的是,机器学习的基本功没有大家想的那么高不可攀,没有必要放弃自己的本专业全职转行,沉没成本太高。通过跨领域完全可以做到曲线救国,化劣势为优势,你们可能比只懂机器学习的人有更大的行业价值。&/p&&p&举几个我身边的例子,我的一个朋友是做传统软件工程研究的,前年他和我商量如何使用机器学习以GitHub上的commit历史来识别bug,这就是一个很好的结合领域的知识。如果你本身是做金融出身,在你补足上面基本功的同时,就可以把机器学习交叉运用于你自己擅长的领域,做策略研究,我已经听说了无数个“宣称”使用机器学习实现了交易策略案例。虽不可尽信,但&b&对特定领域的深刻理解往往就是捅破窗户的那最后一层纸,只理解模型但不了解数据和数据背后的意义,导致很多机器学习模型只停留在好看而不实用的阶段&/b&。&/p&&h2&&b&5. 写在最后&/b&&/h2&&p&虽然人们曾说二十一是生物的世纪,但现在还是人工智能的世纪。欢迎大家来试试机器学习,体验数据分析的魅力。&/p&&p&就像我曾在很多回答中提到,机器学习领域应该要敞开大门,让每个人都可以尝试将机器学习知识应用于他们原本的领域,摒弃人为制造的知识壁垒。唯有这样,机器学习技术才能在更多的不同领域落地,从而反哺机器学习研究本身。&/p&&p&科技日新月异,追逐热点是好的。但在这个浮躁的时代,&b&不管选择什么方向最重要的就是独立思考的能力,和去伪存真的勇气。因此,看了这么多入门教程和经验分享后,我最希望的是你既不要急着全盘接受,也不要因为不对胃口全盘否定。慢下来,好好想想,制定适合自己的计划,这大概才是做科学工作的正确态度。&/b&&/p&&p&&b&在思考之后,拒绝外界的噪音,无论是鼓励还是嘲笑。抱着“不撞南山不回头”的信念,继续朝机器学习的高峰攀登。&/b&&/p&&p&&b&或许,科技领域正因为有了我们这群“书呆子”才显得尤为可爱 &/b&?o?o?&/p&&p&&br&&/p&&hr&&p&拓展阅读:&/p&&p&1. &a href=&https://www.zhihu.com/question//answer/& class=&internal&&阿萨姆:计算机专业学生在大学四年内可以做些什么来丰富简历?&/a&&/p&&p&2. &a href=&https://www.zhihu.com/question//answer/& class=&internal&&阿萨姆:未来 3~5 年内,哪个方向的机器学习人才最紧缺?&/a&&/p&&p&3. &a href=&https://www.zhihu.com/question//answer/& class=&internal&&阿萨姆:现在机器学习工业界和学术界的差别越来越大了吗?尽早实习和踏实科研各有什么利弊?&/a&&/p&&p&图片来源:&a href=&http://link.zhihu.com/?target=https%3A//pixabay.com/en/boys-school-teacher-education-asia-1782427/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Free Image on Pixabay - Boys, School, Teacher, Education&/a&&/p&&p&&/p&
0. 背景写这篇文章的初衷是大部分私信我的朋友都想了解如何入门/转行机器学习,搭上人工智能这列二十一世纪的快车。再加上这个问题每隔一阵子就会在知乎时间线上出现一次,因此想写一篇文章来“一劳永逸”的分享我的观点。文章的宗旨是:1. 指出一些自学的…
神经网络很萌的!&br&&br&&b&0. 分类&/b&&br&神经网络最重要的用途是分类,为了让大家对分类有个直观的认识,咱们先看几个例子:&br&&ul&&li&垃圾邮件识别:现在有一封电子邮件,把出现在里面的所有词汇提取出来,送进一个机器里,机器需要判断这封邮件是否是垃圾邮件。&/li&&li&疾病判断:病人到医院去做了一大堆肝功、尿检测验,把测验结果送进一个机器里,机器需要判断这个病人是否得病,得的什么病。&/li&&li&猫狗分类:有一大堆猫、狗照片,把每一张照片送进一个机器里,机器需要判断这幅照片里的东西是猫还是狗。&/li&&/ul&这种能自动对输入的东西进行分类的机器,就叫做分类器。&br&&br&分类器的输入是一个数值向量,叫做特征(向量)。在第一个例子里,分类器的输入是一堆0、1值,表示字典里的每一个词是否在邮件中出现,比如向量(1,1,0,0,0......)就表示这封邮件里只出现了两个词abandon和abnormal;第二个例子里,分类器的输入是一堆化验指标;第三个例子里,分类器的输入是照片,假如每一张照片都是320*240像素的红绿蓝三通道彩色照片,那么分类器的输入就是一个长度为320*240*3=230400的向量。&br&&br&分类器的输出也是数值。第一个例子中,输出1表示邮件是垃圾邮件,输出0则说明邮件是正常邮件;第二个例子中,输出0表示健康,输出1表示有甲肝,输出2表示有乙肝,输出3表示有饼干等等;第三个例子中,输出0表示图片中是狗,输出1表示是猫。&br&&br&分类器的目标就是让正确分类的比例尽可能高。一般我们需要首先收集一些样本,人为标记上正确分类结果,然后用这些标记好的数据训练分类器,训练好的分类器就可以在新来的特征向量上工作了。&br&&br&&b&1. 神经元&/b&&br&咱们假设分类器的输入是通过某种途径获得的两个值,输出是0和1,比如分别代表猫和狗。现在有一些样本:&br&&figure&&img src=&https://pic3.zhimg.com/6ecf14a96fc508a0ce2c8c9f77a89662_b.jpg& data-rawwidth=&420& data-rawheight=&315& class=&content_image& width=&420&&&/figure&大家想想,最简单地把这两组特征向量分开的方法是啥?当然是在两组数据中间画一条竖直线,直线左边是狗,右边是猫,分类器就完成了。以后来了新的向量,凡是落在直线左边的都是狗,落在右边的都是猫。&br&&br&一条直线把平面一分为二,一个平面把三维空间一分为二,一个n-1维超平面把n维空间一分为二,两边分属不同的两类,这种分类器就叫做神经元。&br&&br&大家都知道平面上的直线方程是&img src=&//www.zhihu.com/equation?tex=ax%2Bby%2Bc%3D0& alt=&ax+by+c=0& eeimg=&1&&,等式左边大于零和小于零分别表示点&img src=&//www.zhihu.com/equation?tex=%28x%2Cy%29& alt=&(x,y)& eeimg=&1&&在直线的一侧还是另一侧,把这个式子推广到n维空间里,直线的高维形式称为超平面,它的方程是:&br&&img src=&//www.zhihu.com/equation?tex=h+%3D+a_1x_1%2Ba_2+x_2%2B...%2Ba_nx_n%2Ba_0%3D0& alt=&h = a_1x_1+a_2 x_2+...+a_nx_n+a_0=0& eeimg=&1&&&br&神经元就是当h大于0时输出1,h小于0时输出0这么一个模型,它的实质就是&b&把特征空间一切两半,认为两瓣分别属两个类&/b&。你恐怕再也想不到比这更简单的分类器了,它是McCulloch和Pitts在1943年想出来了。&br&&br&这个模型有点像人脑中的神经元:从多个感受器接受电信号&img src=&//www.zhihu.com/equation?tex=x_1%2C+x_2%2C...%2Cx_n& alt=&x_1, x_2,...,x_n& eeimg=&1&&,进行处理(加权相加再偏移一点,即判断输入是否在某条直线&img src=&//www.zhihu.com/equation?tex=h%3D0& alt=&h=0& eeimg=&1&&的一侧),发出电信号(在正确的那侧发出1,否则不发信号,可以认为是发出0),这就是它叫神经元的原因。&br&&br&当然,上面那幅图我们是开了上帝视角才知道“一条竖直线能分开两类”,在实际训练神经元时,我们并不知道特征是怎么抱团的。神经元模型的一种学习方法称为Hebb算法:&br&&br&先随机选一条直线/平面/超平面,然后把样本一个个拿过来,如果这条直线分错了,说明这个点&b&分错边了&/b&,就稍微把直线移动一点,让它靠近这个样本,争取跨过这个样本,让它跑到直线正确的一侧;如果直线分对了,它就暂时停下不动。因此训练神经元的过程就是这条直线不断在跳舞,最终跳到两个类之间的竖直线位置。&br&&br&&b&2. 神经网络&/b&&br&MP神经元有几个显著缺点。首先它把直线一侧变为0,另一侧变为1,这东西不可微,不利于数学分析。人们用一个和0-1阶跃函数类似但是更平滑的函数Sigmoid函数来代替它(Sigmoid函数自带一个尺度参数,可以控制神经元对离超平面距离不同的点的响应,这里忽略它),从此神经网络的训练就可以用梯度下降法来构造了,这就是有名的反向传播算法。&br&&br&神经元的另一个缺点是:它只能切一刀!你给我说说一刀怎么能把下面这两类分开吧。&br&&figure&&img src=&https://pic3.zhimg.com/28cd0deae5b9f80de4e4a_b.jpg& data-rawwidth=&420& data-rawheight=&315& class=&content_image& width=&420&&&/figure&解决办法是多层神经网络,底层神经元的输出是高层神经元的输入。我们可以在中间横着砍一刀,竖着砍一刀,然后把左上和右下的部分合在一起,与右上的左下部分分开;也可以围着左上角的边沿砍10刀把这一部分先挖出来,然后和右下角合并。&br&&br&&b&每砍一刀,其实就是使用了一个神经元&/b&,把不同砍下的半平面做交、并等运算,就是把这些神经元的输出当作输入,后面再连接一个神经元。这个例子中特征的形状称为异或,这种情况一个神经元搞不定,但是两层神经元就能正确对其进行分类。&br&&br&只要你能砍足够多刀,把结果拼在一起,什么奇怪形状的边界神经网络都能够表示,所以说神经网络&b&在理论上&/b&可以表示很复杂的函数/空间分布。但是真实的神经网络是否能摆动到正确的位置还要看网络初始值设置、样本容量和分布。&br&&br&神经网络神奇的地方在于它的每一个组件非常简单——把空间切一刀+某种激活函数(0-1阶跃、sigmoid、max-pooling),但是可以一层一层级联。输入向量连到许多神经元上,这些神经元的输出又连到一堆神经元上,这一过程可以重复很多次。这和人脑中的神经元很相似:每一个神经元都有一些神经元作为其输入,又是另一些神经元的输入,数值向量就像是电信号,在不同神经元之间传导,每一个神经元只有满足了某种条件才会发射信号到下一层神经元。当然,人脑比神经网络模型复杂很多:人工神经网络一般不存在环状结构;人脑神经元的电信号不仅有强弱,还有时间缓急之分,就像莫尔斯电码,在人工神经网络里没有这种复杂的信号模式。&br&&br&&figure&&img src=&https://pic2.zhimg.com/df53fac99fc53ba5a90666abcca25e6d_b.jpg& data-rawwidth=&300& data-rawheight=&225& class=&content_image& width=&300&&&/figure&&br&&br&神经网络的训练依靠反向传播算法:最开始输入层输入特征向量,网络层层计算获得输出,输出层发现输出和正确的类号不一样,这时它就让最后一层神经元进行参数调整,最后一层神经元不仅自己调整参数,还会勒令连接它的倒数第二层神经元调整,层层往回退着调整。经过调整的网络会在样本上继续测试,如果输出还是老分错,继续来一轮回退调整,直到网络输出满意为止。这很像中国的文艺体制,武媚娘传奇剧组就是网络中的一个神经元,最近刚刚调整了参数。&br&&br&&b&3. 大型神经网络&/b&&br&&br&我们不禁要想了,假如我们的这个网络有10层神经元,第8层第2015个神经元,它有什么含义呢?我们知道它把第七层的一大堆神经元的输出作为输入,第七层的神经元又是以第六层的一大堆神经元做为输入,那么这个特殊第八层的神经元,它会不会代表了某种抽象的概念?&br&&br&就好比你的大脑里有一大堆负责处理声音、视觉、触觉信号的神经元,它们对于不同的信息会发出不同的信号,那么会不会有这么一个神经元(或者神经元小集团),它收集这些信号,分析其是否符合某个抽象的概念,和其他负责更具体和更抽象概念的神经元进行交互。&br&&br&2012年多伦多大学的Krizhevsky等人构造了一个超大型&a href=&//link.zhihu.com/?target=http%3A//www.cs.toronto.edu/%7Efritz/absps/imagenet.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&卷积神经网络&/a&[1],有9层,共65万个神经元,6千万个参数。网络的输入是图片,输出是1000个类,比如小虫、美洲豹、救生船等等。这个模型的训练需要海量图片,它的分类准确率也完爆先前&b&所有&/b&分类器。纽约大学的&a href=&//link.zhihu.com/?target=http%3A//web.engr.illinois.edu/%7Eslazebni/spring14/lec24_cnn.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Zeiler和Fergusi&/a&[2]把这个网络中某些神经元挑出来,把在其上响应特别大的那些输入图像放在一起,看它们有什么共同点。他们发现中间层的神经元响应了某些十分抽象的特征。&br&&br&第一层神经元主要负责识别颜色和简单纹理&br&&figure&&img src=&https://pic4.zhimg.com/cbd8eee22dca8b0e67f84b3_b.jpg& data-rawwidth=&779& data-rawheight=&422& class=&origin_image zh-lightbox-thumb& width=&779& data-original=&https://pic4.zhimg.com/cbd8eee22dca8b0e67f84b3_r.jpg&&&/figure&&br&第二层的一些神经元可以识别更加细化的纹理,比如布纹、刻度、叶纹。&br&&figure&&img src=&https://pic4.zhimg.com/78fd60058ceabf34d8c77_b.jpg& data-rawwidth=&1060& data-rawheight=&531& class=&origin_image zh-lightbox-thumb& width=&1060& data-original=&https://pic4.zhimg.com/78fd60058ceabf34d8c77_r.jpg&&&/figure&&br&&br&第三层的一些神经元负责感受黑夜里的黄色烛光、鸡蛋黄、高光。&br&&figure&&img src=&https://pic3.zhimg.com/aae832d13b33f15ba97c358fdf7319d2_b.jpg& data-rawwidth=&1058& data-rawheight=&537& class=&origin_image zh-lightbox-thumb& width=&1058& data-original=&https://pic3.zhimg.com/aae832d13b33f15ba97c358fdf7319d2_r.jpg&&&/figure&&br&第四层的一些神经元负责识别萌狗的脸、七星瓢虫和一堆圆形物体的存在。&br&&figure&&img src=&https://pic4.zhimg.com/d456b0fda993b_b.jpg& data-rawwidth=&1058& data-rawheight=&489& class=&origin_image zh-lightbox-thumb& width=&1058& data-original=&https://pic4.zhimg.com/d456b0fda993b_r.jpg&&&/figure&&br&第五层的一些神经元可以识别出花、圆形屋顶、键盘、鸟、黑眼圈动物。&br&&figure&&img src=&https://pic3.zhimg.com/abff15f9ddb3eb716c7da6_b.jpg& data-rawwidth=&1060& data-rawheight=&601& class=&origin_image zh-lightbox-thumb& width=&1060& data-original=&https://pic3.zhimg.com/abff15f9ddb3eb716c7da6_r.jpg&&&/figure&&br&&br&这里面的概念并不是整个网络的输出,是网络中间层神经元的偏好,它们为后面的神经元服务。虽然每一个神经元都傻不拉几的(只会切一刀),但是65万个神经元能学到的东西还真是深邃呢。&br&&br&[1] Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deep convolutional neural networks. In &i&Advances in neural information processing systems&/i& (pp. ).&br&[2] Zeiler, M. D., & Fergus, R. (2013). Visualizing and understanding convolutional neural networks. &i&arXiv preprint arXiv:&/i&.
神经网络很萌的! 0. 分类 神经网络最重要的用途是分类,为了让大家对分类有个直观的认识,咱们先看几个例子: 垃圾邮件识别:现在有一封电子邮件,把出现在里面的所有词汇提取出来,送进一个机器里,机器需要判断这封邮件是否是垃圾邮件。疾病判断:病人到…
&p&入行之后,我才发现数据分析其实可以分为两种:一种类似产品经理、一种偏向数据挖掘,类似产品经理向更加注重业务,对业务能力要求比较高;数据挖掘向更加注重技术,对算法代码能力要求比较高。&/p&&p&&br&&/p&&p&首先我说说这两种方向共同需要的技术面,当然以下只是按照数据分析入门的标准来写:&/p&&p&&br&&/p&&p&1. SQL(数据库),我们都知道数据分析师每天都会处理海量的数据,这些数据来源于数据库,那么怎么从数据库取数据?如何建立两表、三表之间的关系?怎么取到自己想要的特定的数据?等等这些数据选择问题就是你首要考虑的问题,而这些问题都是通过SQL解决的,所以SQL是数据分析的最基础的技能,零基础学习SQL可以阅读这里:&a href=&//link.zhihu.com/?target=https%3A//www.w3cschool.cn/sql/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SQL教程_w3cschool&/a&&/p&&p&2. 统计学基础,数据分析的前提要对数据有感知,数据如何收集?数据整体分布是怎样的?如果有时间维度的话随着时间的变化是怎样的?数据的平均值是什么?数据的最大值最小值指什么?数据相关与回归、时间序列分析和预测等等,这些在网易公开课上倒是有不错的教程:&a href=&//link.zhihu.com/?target=http%3A//open.163.com/special/opencourse/statistics.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&哈里斯堡社区大学公开课:统计学入门_全24集_网易公开课&/a&&/p&&p&3.Python或者R的基础,这一点是必备项也是加分项,在数据挖掘方向是必备项,语言相比较工具更加灵活也更加实用。至于学习资料:R语言我不太清楚,Python方向可以在廖雪峰廖老师的博客里看Python教程,面向零基础。&/p&&p&&br&&/p&&p&再说说两者有区别的技能树:&/p&&p&1.数据挖掘向&/p&&p&我先打个前哨,想要在一两个月内快速成为数据挖掘向的数据分析师基本不可能,做数据挖掘必须要底子深基础牢,编程语言基础、算法、数据结构、统计学知识样样不能少,而这些不是你自习一两个月就能完全掌握的。&/p&&p&所以想做数据挖掘方向的,一定要花时间把软件工程专业学习的计算机基础课程看完,这些课程包括:数据结构、算法,可以在这里一探究竟:&a href=&https://www.zhihu.com/question/& class=&internal&&如何学习数据结构?&/a&&/p&&p&在此之后你可以动手用Python去尝试实现数据挖掘的十八大算法:&a href=&//link.zhihu.com/?target=https%3A//github.com/linyiqun/DataMiningAlgorithm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数据挖掘18大算法实现以及其他相关经典DM算法&/a&&/p&&p&&br&&/p&&p&2.产品经理向&/p&&p&产品经理向需要你对业务感知能力强,对数据十分敏感,掌握常用的一些业务分析模型套路,企业经常招聘的岗位是:商业分析、数据运营、用户研究、策略分析等等。这方面的学习书籍就很多,看得越多掌握的方法越多,我说几本我看过的或者很多人推荐的书籍:《增长黑客》、《网站分析实战》、《精益数据分析》、《深入浅出数据分析》、《啤酒与尿布》、《数据之魅》、《Storytelling with Data》&/p&&p&&br&&/p&&p&总之一百个人眼中有一百个哈姆雷特,一百个数据分析师对快速入门有一百种方法,但是万变不离其中,以上是我的愚见,希望能对你有所启发,&b&所以收藏的话不如点个赞啦!&/b&&/p&&p&&br&&/p&&p&&b&PS:我把一年多的学习经验、书籍资源、面视经验整理成了一本电子书,主要囊括Python入门、Python爬虫入门、Python爬虫进阶部分,在微信公众号“一个程序员的日常”后台回复关键词“1”可以获得这本精华电子书。&/b&&/p&
入行之后,我才发现数据分析其实可以分为两种:一种类似产品经理、一种偏向数据挖掘,类似产品经理向更加注重业务,对业务能力要求比较高;数据挖掘向更加注重技术,对算法代码能力要求比较高。 首先我说说这两种方向共同需要的技术面,当然以下只是按照数…
&p&没有什么牛逼的事情是能够速成的,越是底层的、收益周期越长的技能越是这样。&/p&&p&但这并不代表,我们不能用一些有意思的方法,把学习的过程变得高效而有趣。&/p&&p&学习一门技术之前,你应该知道,你想要达成的目标是什么样的,也就是说,你想通过这门技术来解决哪些问题。有了这个目标,你就可以知道要达成这样的目标,它的知识体系是怎么样的。更重要一点的是,每个部分是用来解决哪些问题,只有明确的目标导向,学习最有用的那部分知识,才能避免无效信息降低学习效率。&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&明确知识框架和学习路径&/b&&/h2&&p&比如数据分析这件事情,如果你要成为数据分析师,那么你可以去招聘网站看看,对应的职位的需求是什么,一般来说你就会对应该掌握的知识架构有初步的了解。你可以去看看数据分析师职位,企业对技能需求可总结如下:&/p&&ul&&li&&i&SQL数据库的基本操作,会基本的数据管理&/i&&/li&&li&&i&会用Excel/SQL做基本的数据提取、分析和展示&/i&&/li&&li&&i&会用脚本语言进行数据分析,Python or R&/i&&/li&&li&&i&有获取外部数据的能力加分,如爬虫或熟悉公开数据集&/i&&/li&&li&&i&会基本的数据可视化技能,能撰写数据报告&/i&&/li&&li&&i&熟悉常用的数据挖掘算法:回归分析、决策树、分类、聚类方法&/i&&/li&&/ul&&p&其次是数据分析的流程,一般大致可以按“数据获取-数据存储与提取-数据预处理-数据建模与分析-数据可视化”这样的步骤来实施一个数据分析项目。按照这个流程,每个部分需要掌握的细分知识点如下:&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-380a0f9a27f3ec3396fe1aec33ea8e38_b.png& data-caption=&& data-size=&normal& data-rawwidth=&1044& data-rawheight=&832& class=&origin_image zh-lightbox-thumb& width=&1044& data-original=&https://pic1.zhimg.com/v2-380a0f9a27f3ec3396fe1aec33ea8e38_r.png&&&/figure&&p&&br&&/p&&p&高效的学习路径是什么?就是数据分析的这个流程。按这样的顺序循序渐进,你会知道每个部分需要完成的目标是什么,需要学习哪些知识点,哪些知识是暂时不必要的。然后每学习一个部分,你就能够有一些实际的成果输出,有正向的反馈和成就感,你才会愿意花更多的时间投入进去。以解决问题为目标,效率自然不会低。&/p&&p&按照上面的流程,我们分需要获取外部数据和不需要获取外部数据两类分析师,总结学习路径如下:&/p&&p&&b&1.需要获取外部数据分析师:&/b&&/p&&p&python基础知识&/p&&p&python爬虫&/p&&p&SQL语言&/p&&p&python科学计算包:pandas、numpy、scipy、scikit-learn&/p&&p&统计学基础&/p&&p&回归分析方法&/p&&p&数据挖掘基本算法:分类、聚类&/p&&p&模型优化:特征提取&/p&&p&数据可视化:seaborn、matplotlib&/p&&p&&br&&/p&&p&&b&2.不需要获取外部数据分析师:&/b&&/p&&p&SQL语言&/p&&p&python基础知识&/p&&p&python科学计算包:pandas、numpy、scipy、scikit-learn&/p&&p&统计学基础&/p&&p&回归分析方法&/p&&p&数据挖掘基本算法:分类、聚类&/p&&p&模型优化:特征提取&/p&&p&数据可视化:seaborn、matplotlib&/p&&p&&br&&/p&&p&接下来我们分别从每一个部分讲讲具体应该学什么、怎么学。&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&数据获取:公开数据、Python爬虫&/b&&/h2&&blockquote&&i&如果接触的只是企业数据库里的数据,不需要要获取外部数据的,这个部分可以忽略。&/i&&/blockquote&&p&外部数据的获取方式主要有以下两种。&/p&&p&&br&&/p&&p&第一种是获取外部的公开数据集,一些科研机构、企业、政府会开放一些数据,你需要到特定的网站去下载这些数据。这些数据集通常比较完善、质量相对较高。给大家推荐一些常用的可以获取数据集的网站:&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//archive.ics.uci.edu/ml/datasets.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&UCI&/a&:加州大学欧文分校开放的经典数据集,真的很经典,被很多机器学习实验室采用。&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//data.stats.gov.cn/index.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&国家数据&/a&:数据来源于中国国家统计局,包含了我国经济民生等多个方面的数据。&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//www.ceicdata.com/zh-hans& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CEIC&/a&:超过128个国家的经济数据,能够精确查找GDP, CPI, 进口,出口,外资直接投资,零售,销售,以及国际利率等深度数据。&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//www.tjcn.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&中国统计信息网&/a&:国家统计局的官方网站,汇集了海量的全国各级政府各年度的国民经济和社会发展统计信息。&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//www.youedata.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&优易数据&/a&:由国家信息中心发起,拥有国家级信息资源的数据平台,国内领先的数据交易平台。&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//www.datatang.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数据堂&/a&:同为数据交易平台,包含语音识别、医疗健康、交通地理、电子商务、社交网络、图像识别等方面的数据。&/p&&p&其他可以参考:&a href=&//link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/Lggp4sBux_FFnC3m8xEWIA& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&有哪些一般人不知道的数据获取方式&/a&&/p&&p&&br&&/p&&p&另一种获取外部数据费的方式就是爬虫。&/p&&p&比如你可以通过爬虫获取招聘网站某一职位的招聘信息,爬取租房网站上某城市的租房信息,爬取豆瓣评分评分最高的电影列表,获取知乎点赞排行、网易云音乐评论排行列表。基于互联网爬取的数据,你可以对某个行业、某种人群进行分析。&/p&&p&在爬虫之前你需要先了解一些 Python 的基础知识:&a href=&//link.zhihu.com/?target=http%3A//www.runoob.com/python/python-basic-syntax.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&元素(列表、字典、元组等)、变量、循环、函数&/a&(链接的菜鸟教程非常好)……以及如何用成熟的 Python 库(urllib、BeautifulSoup、requests、scrapy)实现网页爬虫。如果是初学,建议从 urllib 和 BeautifulSoup 开始。(PS:后续的数据分析也需要 Python 的知识,以后遇到的问题也可以在这个教程查看)&/p&&p&网上的爬虫教程不要太多,爬虫上手推荐豆瓣的网页爬取,一方面是网页结构比较简单,二是豆瓣对爬虫相对比较友好。&/p&&p&掌握基础的爬虫之后,你还需要一些高级技巧,比如正则表达式、模拟用户登录、使用代理、设置爬取频率、使用cookie信息等等,来应对不同网站的反爬虫限制。&/p&&p&除此之外,常用的的电商网站、问答网站、点评网站、二手交易网站、婚恋网站、招聘网站的数据,都是很好的练手方式。这些网站可以获得很有分析意义的数据,最关键的是,有很多成熟的代码,可以参考。&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&数据存取:SQL语言&/b&&/h2&&p&你可能有一个疑惑,为什么没有讲到Excel。在应对万以内的数据的时候,Excel对于一般的分析没有问题,一旦数据量大,就会力不从心,数据库就能够很好地解决这个问题。而且大多数的企业,都会以SQL的形式来存储数据,如果你是一个分析师,也需要懂得SQL的操作,能够查询、提取数据。&/p&&p&SQL作为最经典的数据库工具,为海量数据的存储与管理提供可能,并且使数据的提取的效率大大提升。你需要掌握以下技能:&/p&&p&&b&提取特定情况下的数据:&/b&企业数据库里的数据一定是大而繁复的,你需要提取你需要的那一部分。比如你可以根据你的需要提取2017年所有的销售数据、提取今年销量最大的50件商品的数据、提取上海、广东地区用户的消费数据……,SQL可以通过简单的命令帮你完成这些工作。&/p&&p&&b&数据库的增、删、查、改:&/b&这些是数据库最基本的操作,但只要用简单的命令就能够实现,所以你只需要记住命令就好。&/p&&p&&b&数据的分组聚合、如何建立多个表之间的联系:&/b&这个部分是SQL的进阶操作,多个表之间的关联,在你处理多维度、多个数据集的时候非常有用,这也让你可以去处理更复杂的数据。&/p&&p&SQL这个部分相对来说比较简单,可以去这个教程:&a href=&//link.zhihu.com/?target=http%3A//www.runoob.com/mysql/mysql-tutorial.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MySQL-菜鸟教程&/a&&/p&&p&简单到怀疑人生,学完这个教程的内容就够了。当然,还是建议你找一个数据集来实际操作一下,哪怕是最基础的查询、提取等操作。你可以去调用一些公司的数据来进行实际的演练,如果没有合适的,这里推荐UCI经典的&a href=&//link.zhihu.com/?target=http%3A//archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&鸢尾花数据集&/a&。&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&数据预处理:Python(pandas)&/b&&/h2&&p&很多时候我们拿到的数据是不干净的,数据的重复、缺失、异常值等等,这时候就需要进行数据的清洗,把这些影响分析的数据处理好,才能获得更加精确地分析结果。&/p&&p&比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的。比如用户行为数据,有很多无效的操作对分析没有意义,就需要进行删除。&/p&&p&那么我们需要用相应的方法去处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全,这些都是需要考虑的问题。&/p&&p&对于数据预处理,学会 pandas 的用法,应对一般的数据清洗就完全没问题了。需要掌握的知识点如下:&/p&&p&&b&选择&/b&:数据访问(标签、特定值、布尔索引等)&/p&&p&&b&缺失值处理&/b&:对缺失数据行进行删除或填充&/p&&p&&b&重复值处理:&/b&重复值的判断与删除&/p&&p&&b&空格和异常值处理&/b&:清楚不必要的空格和极端、异常数据&/p&&p&&b&相关操作:&/b&描述性统计、Apply、直方图等&/p&&p&&b&合并&/b&:符合各种逻辑关系的合并操作&/p&&p&&b&分组&/b&:数据划分、分别执行函数、数据重组&/p&&p&&b&Reshaping&/b&:快速生成数据透视表&/p&&p&&br&&/p&&p&网上有很多pandas的教程,主要是一些函数的应用,也都非常简单,如果遇到问题,可以参看pandas操作的&a href=&//link.zhihu.com/?target=http%3A//pandas.pydata.org/pandas-docs/stable/tutorials.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&官方文档&/a&。&/p&&p&&br&&/p&&p&推荐书:&a href=&//link.zhihu.com/?target=https%3A//book.douban.com/subject//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&利用Python进行数据分析 (豆瓣)&/a&&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&概率论及统计学知识 &/b&&/h2&&p&数据整体分布是怎样的?什么是总体和样本?中位数、众数、均值、方差等基本的统计量如何应用?如果有时间维度的话随着时间的变化是怎样的?如何在不同的场景中做假设检验?数据分析方法大多源于统计学的概念,所以统计学的知识也是必不可少的。需要掌握的知识点如下:&/p&&p&&b&基本统计量&/b&:均值、中位数、众数、百分位数、极值等&/p&&p&&b&其他描述性统计量&/b&:偏度、方差、标准差、显著性等&/p&&p&&b&其他统计知识&/b&:总体和样本、参数和统计量、ErrorBar&/p&&p&&b&概率分布与假设检验&/b&:各种分布、假设检验流程&/p&&p&&b&其他概率论知识&/b&:条件概率、贝叶斯等&/p&&p&&br&&/p&&p&有了统计学的基本知识,你就可以用这些统计量做基本的分析了。通过可视化的方式来描述数据的指标,其实可以得出很多结论了,比如排名前100的是哪些,平均水平是怎样的,近几年的变化趋势如何……&/p&&p&你可以使用python的包 Seaborn(python包)在做这些可视化的分析,你会轻松地画出各种可视化图形,并得出具有指导意义的结果。了解假设检验之后,可以对样本指标与假设的总体指标之间是否存在差别作出判断,已验证结果是否在可接受的范围。&/p&&p&&br&&/p&&p&推荐书:&a href=&//link.zhihu.com/?target=https%3A//book.douban.com/subject/7056708/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深入浅出统计学 (豆瓣)&/a&&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&python数据分析 &/b&&/h2&&p&如果你有一些了解的话,就知道目前市面上其实有很多 Python 数据分析的书籍,但每一本都很厚,学习阻力非常大。但其实真正最有用的那部分信息,只是这些书里很少的一部分。比如用 Python 实现不同案例的假设检验,其实你就可以对数据进行很好的验证。&/p&&p&比如掌握回归分析的方法,通过线性回归和逻辑回归,其实你就可以对大多数的数据进行回归分析,并得出相对精确地结论。比如DataCastle的训练竞赛“&a href=&//link.zhihu.com/?target=http%3A//www.pkbigdata.com/common/cmpt/%25E7%25BE%258E%25E5%259B%25BDKing%2520County%25E6%2588%25BF%25E4%25BB%25B7%25E9%25A2%%25B5%258B%25E8%25AE%25AD%25E7%25BB%%25B5%259B_%25E7%25AB%259E%25E8%25B5%259B%25E4%25BF%25A1%25E6%2581%25AF.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&房价预测&/a&”和“&a href=&//link.zhihu.com/?target=http%3A//www.pkbigdata.com/common/cmpt/%25E5%E5%25B7%25A5%25E7%25A6%25BB%25E8%E9%25A2%%25B5%258B%25E8%25AE%25AD%25E7%25BB%%25B5%259B_%25E7%25AB%259E%25E8%25B5%259B%25E4%25BF%25A1%25E6%2581%25AF.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&职位预测&/a&”,都可以通过回归分析实现。这部分需要掌握的知识点如下:&/p&&p&&b&回归分析&/b&:线性回归、逻辑回归&/p&&p&&b&基本的分类算法&/b&:决策树、随机森林……&/p&&p&&b&基本的聚类算法&/b&:k-means……&/p&&p&&b&特征工程基础&/b&:如何用特征选择优化模型&/p&&p&&b&调参方法&/b&:如何调节参数优化模型&/p&&p&&b&Python 数据分析包&/b&:scipy、numpy、scikit-learn等&/p&&p&&br&&/p&&p&在数据分析的这个阶段,重点了解回归分析的方法,大多数的问题可以得以解决,利用描述性的统计分析和回归分析,你完全可以得到一个不错的分析结论。&/p&&p&当然,随着你实践量的增多,可能会遇到一些复杂的问题,你就可能需要去了解一些更高级的算法:分类、聚类,然后你会知道面对不同类型的问题的时候更适合用哪种算法模型,对于模型的优化,你需要去学习如何通过特征提取、参数调节来提升预测的精度。这就有点数据挖掘和机器学习的味道了,其实一个好的数据分析师,应该算是一个初级的数据挖掘工程师了。&/p&&p&&br&&/p&&p&推荐:&a href=&//link.zhihu.com/?target=http%3A//scikit-learn.org/dev/_downloads/scikit-learn-docs.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&scikit-learn官方文档&/a&&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&系统实战 &/b&&/h2&&p&这个时候,你就已经具备了数据分析的基本能力了。但是还要根据不同的案例、不同的业务场景进行实战。能够独立完成分析任务,那么你就已经打败市面上大部分的数据分析师了。&/p&&p&如何进行实战呢?&/p&&p&上面提到的公开数据集,可以找一些自己感兴趣的方向的数据,尝试从不同的角度来分析,看看能够得到哪些有价值的结论。&/p&&p&另一个角度是,你可以从生活、工作中去发现一些可用于分析的问题,比如上面说到的电商、招聘、社交等平台等方向都有着很多可以挖掘的问题。&/p&&p&开始的时候,你可能考虑的问题不是很周全,但随着你经验的积累,慢慢就会找到分析的方向,有哪些一般分析的维度,比如top榜单、平均水平、区域分布、年龄分布、相关性分析、未来趋势预测等等。随着经验的增加,你会有一些自己对于数据的感觉,这就是我们通常说的数据思维了。&/p&&p&你也可以看看行业的分析报告,推荐:&a href=&//link.zhihu.com/?target=http%3A//www.iresearch.com.cn/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&艾瑞咨询&/a&&/p&&p&看看优秀的分析师看待问题的角度和分析问题的维度,其实这并不是一件困难的事情。&/p&&p&在掌握了初级的分析方法之后,也可以尝试做一些数据分析的竞赛,比如 DataCastle 为数据分析师专门定制的三个竞赛,提交答案即可获取评分和排名:&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//www.pkbigdata.com/common/cmpt/%25E5%E5%25B7%25A5%25E7%25A6%25BB%25E8%E9%25A2%%25B5%258B%25E8%25AE%25AD%25E7%25BB%%25B5%259B_%25E7%25AB%259E%25E8%25B5%259B%25E4%25BF%25A1%25E6%2581%25AF.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&员工离职预测训练赛&/a&&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//www.pkbigdata.com/common/cmpt/%25E7%25BE%258E%25E5%259B%25BDKing%2520County%25E6%2588%25BF%25E4%25BB%25B7%25E9%25A2%%25B5%258B%25E8%25AE%25AD%25E7%25BB%%25B5%259B_%25E7%25AB%259E%25E8%25B5%259B%25E4%25BF%25A1%25E6%2581%25AF.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&美国King County房价预测训练赛&/a&&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//www.dcjingsai.com/common/cmpt/%25E5%258C%%25BA%25ACPM2.5%25E6%25B5%%25BA%25A6%25E5%259B%259E%25E5%25BD%%E6%259E%%25AE%25AD%25E7%25BB%%25B5%259B_%25E7%25AB%259E%25E8%25B5%259B%25E4%25BF%25A1%25E6%2581%25AF.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&北京PM2.5浓度分析训练赛&/a&&/p&&p&&br&&/p&&p&你也可以关注一些知乎大V,他们的经验可能让你少走弯路。&/p&&p&&a class=&member_mention& href=&//www.zhihu.com/people/1226dd3baaf60e6904a7e& data-hash=&1226dd3baaf60e6904a7e& data-hovercard=&p$b$1226dd3baaf60e6904a7e&&@邹昕&/a& &a class=&member_mention& href=&//www.zhihu.com/people/f0c76dd186cadbfe466f22& data-hash=&f0c76dd186cadbfe466f22& data-hovercard=&p$b$f0c76dd186cadbfe466f22&&@卡牌大师&/a& &a class=&member_mention& href=&//www.zhihu.com/people/29a386cc4b62dd3a95af790ba2fcf1cb& data-hash=&29a386cc4b62dd3a95af790ba2fcf1cb& data-hovercard=&p$b$29a386cc4b62dd3a95af790ba2fcf1cb&&@Han Hsiao&/a& &a class=&member_mention& href=&//www.zhihu.com/people/4920fca107ec266a26bf578ff112a6d3& data-hash=&4920fca107ec266a26bf578ff112a6d3& data-hovercard=&p$b$4920fca107ec266a26bf578ff112a6d3&&@何明科&/a& &a class=&member_mention& href=&//www.zhihu.com/people/b09ea18dcf0c0& data-hash=&b09ea18dcf0c0& data-hovercard=&p$b$b09ea18dcf0c0&&@chenqin&/a& &a class=&member_mention& href=&//www.zhihu.com/people/8f89f417fbed95a9a9bf2& data-hash=&8f89f417fbed95a9a9bf2& data-hovercard=&p$b$8f89f417fbed95a9a9bf2&&@桑文锋&/a& &/p&&p&&br&&/p&&p&知乎上还有一些非常好的数据分析专栏,经常会有一些有意思的文章。&/p&&p&&a href=&https://zhuanlan.zhihu.com/hemingke& class=&internal&&数据冰山&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/dataman& class=&internal&&数据分析侠&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/donglaoshi& class=&internal&&董老师在硅谷&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/data-analyst-improvement& class=&internal&&一个数据分析师的自我修养&/a&&/p&&p&&br&&/p&&p&你看,其实梳理一遍之后是不是清晰了很多。把每一个部分的内容找来学习就可以了,但一定要在学习过程中找不同的问题来实践,在实践中发现问题去寻找答案,补足知识。种一棵树最好的时间是十年前,其次是现在。现在就去,找一个数据集开始吧!!&/p&&p&&br&&/p&&p&DC学院总结了无数的优秀分析师爬坑经验,和无数的数据分析书籍,开了一门系统数据分析课,就是按照以上的学习路径。如果你有兴趣,可以看看:&a href=&//link.zhihu.com/?target=https%3A//www.dcxueyuan.com/%3Fslxydc%3D3c75bf%23/classDetail/classIntroduce/1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数据分析师(入门)-DC学院&/a&&/p&&p&关注公众号(datacastle2016),获取更多数据分析干货。&/p&
没有什么牛逼的事情是能够速成的,越是底层的、收益周期越长的技能越是这样。但这并不代表,我们不能用一些有意思的方法,把学习的过程变得高效而有趣。学习一门技术之前,你应该知道,你想要达成的目标是什么样的,也就是说,你想通过这门技术来解决哪些问…
&figure&&img src=&https://pic1.zhimg.com/v2-e21a41b23fa13da3b8efe0c_b.png& data-rawwidth=&256& data-rawheight=&356& class=&content_image& width=&256&&&/figure&&p&其实很多程序员都知道,能认认真真的把这本书(或者类似的书)看完并掌握其中一部分,年薪40W真的问题不是很大。&/p&&p&但是,这个大家都懂的道理(包括我自己),真正去弄,又有几个人能做得到?&/p&&p&其实看完并掌握这本书(其中一部分),我认为三、五年足矣了吧?&/p&&p&可惜我们就是不想挣这个钱……&/p&&p&一个字,懒……&/p&&p&=============修改追加===========&/p&&p&很多人说这本书(或类似的书)看完拿不到这个工资,其实我觉得,实践出真知,反正又不是什么坏事,你去试试不就知道了吗?&/p&&p&跟很多人说的一样,这本书最大的难度就是前置条件太多,能达到开始看懂这本书的程序员,稍微好点儿的二十万一年没问题(15K * 13,这个工资很高吗?)。&/p&&p&看完这本书,给三十万一年很高吗?(23K*13)&/p&&p&你能看完这本书,自己的工作经验估计也有七八年了,八年我就是不看这本书,三十万也不是遥不可及吧?&/p&&p&能把这本书里的内容灵活运用在项目里,四十万多吗?&/p&&p&如果你说,我厉害,我一年就能看完,对不起,你能一年看完,湾区欢迎你,这不是四十万RMB的问题,可能会换成十几万美刀。&/p&&p&评论区某些智商捉急的人真是不想搭理。&/p&&p&因为知乎上有同事,我也就不细说具体案例了。&/p&&p&不要用你写Spring、Hibernate这种低端的思维去考虑算法问题。&/p&&p&&br&&/p&&p&当然,你要说在二三线城市,那就当我什么也没说。&/p&
其实很多程序员都知道,能认认真真的把这本书(或者类似的书)看完并掌握其中一部分,年薪40W真的问题不是很大。但是,这个大家都懂的道理(包括我自己),真正去弄,又有几个人能做得到?其实看完并掌握这本书(其中一部分),我认为三、五年足矣了吧?可…
&p&跟新&/p&&p&从DeepLearning Weekly中发现了Data Science Central这个非常棒的网址。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-0f3e3edd6e202a179efad6_b.jpg& data-rawwidth=&852& data-rawheight=&114& class=&origin_image zh-lightbox-thumb& width=&852& data-original=&https://pic3.zhimg.com/v2-0f3e3edd6e202a179efad6_r.jpg&&&/figure&&p&在搜索栏里搜索:interview questions&/p&&figure&&img src=&https://pic1.zhimg.com/v2-33be440b4ae4ea6b8d3b_b.jpg& data-rawwidth=&1001& data-rawheight=&614& class=&origin_image zh-lightbox-thumb& width=&1001& data-original=&https://pic1.zhimg.com/v2-33be440b4ae4ea6b8d3b_r.jpg&&&/figure&&p&随便点开哪个都可以作为在准备面试的过程中的自测题~&/p&&p&对于我这样的小白,这些问题够我喝一壶了....&/p&&hr&&p&面试官如何判断.....&/p&&p&这还得看是哪里的面试官....&/p&&p&记得前不久对面实验室一位师兄去阿里面试,直接先让他推导BP算法公式,除此之外貌似还有其他几个算法的公式....所以这段时间可以发现对面实验室怎么多了一个埋头苦读奋笔疾书的人,猛地一看,原来捧着西瓜书在推导公式呢&/p&&p&跑题回答一下自己开始学习的过程,由于导师年龄偏大基本已经不接项目,所以本人从研一开始就搜罗了大量PACKT、O‘Reilly和Springer出版社出版的关于机器/深度学习的原版书(好几本是17年新出的)并挑选着阅读。相比国内的教材,国外的教材风趣,生动,仔细,逼格高(和国内那种东拼西凑的三脚猫功夫教材相比)....说不定看着看着六级就过了....&/p&&p&看了下上面几位答主提到的面试问题,基本上书本作者也都会提到。&/p&&p&截个图:&/p&&p&关于机器学习的国外教材:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-640eaad9dba2a59a224195d_b.png& data-rawwidth=&399& data-rawheight=&423& class=&content_image& width=&399&&&/figure&&p&关于深度学习的国外教材:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-ff4a42e20eaabe32ac11b_b.png& data-rawwidth=&439& data-rawheight=&197& class=&origin_image zh-lightbox-thumb& width=&439& data-original=&https://pic4.zhimg.com/v2-ff4a42e20eaabe32ac11b_r.png&&&/figure&&p&上面的教材除了个别之外基本上都有源代码可以下载~如果要资源可以私,看完也可以一起交流阅读心得~(除了上面贴出来的应用性教材之外还包括了其他理论性的。不过我只下载了部分电子书的源代码,我自己是看几本下几本,但是基本上每本书的开头几页作者一般都会给出类似于下面截图示例代码的github链接的,如果没耐心的话可以直接搜索关键字搜~)&/p&&figure&&img src=&https://pic1.zhimg.com/v2-3b240eed8a8d1d449ce08_b.png& data-rawwidth=&939& data-rawheight=&147& class=&origin_image zh-lightbox-thumb& width=&939& data-original=&https://pic1.zhimg.com/v2-3b240eed8a8d1d449ce08_r.png&&&/figure&&p&&br&&/p&&p&关于深度学习的教材,上述两个出版社里,还有几本18年才出,流口水坐等,特别是医学图像处理方向的!(不过后来仔细一看貌似是本论文集....)&/p&&p&评论里有知友提到那本DL花书。我其实看了一半多一点,后来就放弃了...因为实在有点枯燥...不过如果想要扎实的理论基础,最好是好好读一遍(不过说实话我自己只看一遍的书,过几个月再拿起来看又像看新书一样了_(?3」∠)_所以书读百遍其义自见不是没有道理的)&/p&&p&另外推荐一个外文教材下载网站(几乎包括了CS所有领域,并且几乎每天更新,各种语言的程序员必备~):&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//www.finelybook.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&finelybook&/a&&/p&&p&打好基础(原理公式,代码)才是硬道理吧。&/p&&p&面试好像捕鱼,趁着还没出海先好好织一张密密的、结实的渔网,因为不知道到时候哪个网眼会怼到鱼~&/p&
跟新从DeepLearning Weekly中发现了Data Science Central这个非常棒的网址。在搜索栏里搜索:interview questions随便点开哪个都可以作为在准备面试的过程中的自测题~对于我这样的小白,这些问题够我喝一壶了....面试官如何判断.....这还得看是哪…
&p&反欺诈方向的实际应用很多,我有做过保险业反欺诈和零售快消业的欺诈检测,抛砖引玉的谈谈反欺诈项目的&b&&道&&/b&和&b&&术&。&/b&&/p&&p&&b&*具体的学习方法可以参考我最近的文章:&/b&&a href=&https://www.zhihu.com/question//answer/& class=&internal&&机器学习门下,有哪些在工业界应用较多,前景较好的小方向?&/a&&/p&&p&&b&该回答的第一部分(1)讨论了为什么欺诈检测难度很大,第二部分(2-4)讨论了a. 数据可视化 b. 一些常用的算法及模型 c. 欺诈点验证,第三部分(5)归纳并提出了一个反欺诈模型的通用框架供大家参考。&/b&&/p&&p&--------------------------------------------------------------------------------------------------------------------&/p&&h2&&b&1. 背景 - 为什么反欺诈检测难度很高?&/b&&/h2&&p&反欺诈项目很多情况下就是客户根本不知道什么是欺诈,什么不是。换句话说,对于什么是诈骗的定义很模糊。&b&往小了说,反诈骗似乎是一个二分类问题(binary classification),但你仔细想想后会发现其实这是个多分类问题(multi-class classification),如果你把每种不同诈骗当做一种单独的类型。而单一类型的诈骗几乎是不存在的,且诈骗的手段日新月新总在变化。&/b&即使像银行还有保险公司这种常年和诈骗打交道的行业,也必须常常更新自己的检测手段,而不是把赌注压到同一个模型上。&/p&&p&除此之外,欺诈检测一般还面临以下问题:&/p&&ul&&li&九成九的情况数据是没有标签(label)的,各种成熟的监督学习(supervised learning)没有用武之地。&/li&&li&区分噪音(noise)和异常点(anomaly)时难度很大,甚至需要发挥一点点想象力和直觉。&/li&&li&紧接着上一点,当多种诈骗数据混合在一起,区分不同的诈骗类型更难。根本原因还是因为我们并不了解每一种诈骗定义。&/li&&li&...&/li&&/ul&&p&退一步说,即使我们真的有诈骗的历史数据,即在有标签的情况下用监督学习,也存在很大的风险。&b&用这样的历史数据学出的模型只能检测曾经出现过与历史诈骗相似的诈骗,而对于变种的诈骗和从未见过的诈骗,我们的模型将会无能为力&/b&。&b&因此,在实际情况中,我不建议直接用任何监督学习,至少不能单纯依靠一个监督学习模型来奢求检测到所有的诈骗。&/b&&/p&&p&这就陷入了一个鸡生蛋蛋生鸡的死循环,因为没有历史标签和对诈骗的理解,我们无法做出能对诈骗细分的模型。因此我们一般使用无监督学习(unsupervised learning),且需要领域专家(domain experts)也就是对这个行业非常了解的人来验证我们的预测,提供反馈,以便于及时的调整模型。&/p&&h2&&b&2. 反欺诈项目的操作顺序(1) - 可视化&/b&&/h2&&p&一般在拿到数据以后,我会推荐以下步骤进行分析。当然,一个答案很难包括所有常见的操作,仅仅是分享个人经验以供思考。&/p&&p&&b&数据可视化 - 相关矩阵(Correlation Matrix) & 多维尺度变换(Multidimensional Scaling)
&/b&&/p&&p&&b&人是视觉动物,可以在第一时间“看到”数据中存在的问题。&/b&因此,对于大部分反欺诈问题,我建议至少要做以下两个可视化尝试:&/p&&p&&b&2.1.&/b&首先对不同的特征(feature)做一个&b&相关矩阵分析并可视化&/b&,&b&分析相关矩阵的目的是告诉我们特征两两之间的关系,以便于我们快速发现一些数据里面可能存在的问题。最重要的是帮助我们检查数据是否存在问题,&/b&有没有什么违反常理的情况。&/p&&p&以我最近在写的文章为例(并不是反欺诈问题),对不同偶像团体是否能够继续走红进行预测。我们希望不同特征之间的两两关系符合尝试, 我在模型里面用了6个不同的特征并计算相关矩阵: &/p&&figure&&img src=&https://pic4.zhimg.com/v2-8833bbd4cc4daa41c3fecbd38a30f23b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1027& data-rawheight=&145& class=&origin_image zh-lightbox-thumb& width=&1027& data-original=&https://pic4.zhimg.com/v2-8833bbd4cc4daa41c3fecbd38a30f23b_r.jpg&&&/figure&&p&通过上表及下图,我们发现:&/p&&ul&&li&团员的平均的年龄和演唱会次数无关。&/li&&li&出道长度和和演唱会次数为负相关。&/li&&/ul&&figure&&img src=&https://pic4.zhimg.com/v2-b0a027cdc063_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1273& data-rawheight=&882& class=&origin_image zh-lightbox-thumb& width=&1273& data-original=&https://pic4.zhimg.com/v2-b0a027cdc063_r.jpg&&&/figure&&p&举例,如果我们发现出道年限和专辑数呈负相关,这就违反了常识。按照常识出道时间越长专辑数应该越多,因此需要认真检查为什么会有这样的情况发生,是否是潜在问题。&/p&&p&&b&2.2. 多维尺度变换(MDS)来直接可视化数据分布&/b&&/p&&p&我们都知道一般来说欺诈和正常数据应该“长得不一样”,那是否可以直接把它们画出来来分析。&/p&&p&然而,数据可视化往往都是二维或者三维的,但现实往往是成百上千维。即使我们把一个特征作为一个维度,我们最多也只能可视化三个维度。而&b&多维尺度变换(MDS)可以将高维的数据在二维或者三维的框架里面进行可视化,类似的数据点会更加接近。通过观察数据点的分布,我们可以直观的猜测数据是否有规律,是否存在潜在异常点。&/b&&/p&&p&以我最近做的一个项目为例,我们用MDS将一个8维的数据在2维上展示出来。我们似乎可以直观的看到一些近似线性的关系,以及一些看起来“很可疑”的点,我在图中标注了出来。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-50fd5f1b100c5753d1bf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1286& data-rawheight=&838& class=&origin_image zh-lightbox-thumb& width=&1286& data-original=&https://pic4.zhimg.com/v2-50fd5f1b100c5753d1bf_r.jpg&&&/figure&&p&这样做的好处有两点:&/p&&ul&&li&首先我们可以看到数据是否存在特定的特征,如果所有的点都是随机散乱分布,那我们的麻烦就大了。&/li&&li&我们似乎可以看到有一些离群的数据点,这些点可能是潜在的“欺诈”,也有可能只是噪音而已。&b&但我们可以向客户或者老板展示这个可视图,向他们证明项目有潜在的价值。&/b&&/li&&/ul&&p&如果在可视化中我们看到了一些规律,这让有信心继续往下做,进入建模阶段。多加一句,此处和主成分分析(PCA)也有异曲同工之妙。&/p&&h2&&b&3. 反欺诈项目的操作顺序(2) - 算法&/b&&/h2&&p&一般我们对欺诈检测做两种假设:&/p&&ol&&li&&b&时序相关(time dependent)。&/b&对于时序相关的问题,我们假设欺诈的发生依赖于时间,通过时间序列分析,我们可以发现异常的地方。举例,假设一个人的信用卡平时1-11月每月消费2000美元,但12月突然消费了5000美元,此时时间就对我们的项目存在意义。&/li&&li&&b&时序独立(time independent)。&/b&对于时序独立的问题,我们假设每一个欺诈都是独立,和时间无关。于是在分析中,我们移除了时间这个特征,我们不再把时间作为一个分析轴或者影响欺诈发生的特征。&/li&&/ol&&p&&b&3.1. 时间序列分析(time series analysis)&/b&&/p&&p&时间序列分析展开说是很大的话题,从简单的观察一个时间序列是否稳定(stability)到更复杂的看多个特征如何在时间上互相作用如 vector auto-regression(var)。&/p&&p&一般我们对时间序列重整使其稳定后,会进行一系列分析,最简单的就是观察什么时候出现反常的spike(即突然上升)。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-554bd362cad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&638& data-rawheight=&187& class=&origin_image zh-lightbox-thumb& width=&638& data-original=&https://pic2.zhimg.com/v2-554bd362cad_r.jpg&&&/figure&&p&图片来源(&a href=&//link.zhihu.com/?target=https%3A//blogs.technet.microsoft.com/machinelearning//anomaly-detection-using-machine-learning-to-detect-abnormalities-in-time-series-data/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Anomaly Detection – Using Machine Learning to Detect Abnormalities in Time Series Data&/a&)&/p&&p&就像上图所标注出来着一系列点都是潜在的异常点。严格意义上说,时间序列分析在金融经济领域使用的更多,任何交易模型都需要时序分析。&/p&&p&另一种简单的时序分析就是持续追踪某个值的变化情况,并在多个数据中进行对比:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-14ddeac4660151_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1036& data-rawheight=&508& class=&origin_image zh-lightbox-thumb& width=&1036& data-original=&https://pic2.zhimg.com/v2-14ddeac4660151_r.jpg&&&/figure&&p&上图是某种产品在不同零售商(不同颜色)的退货情况,x轴是时间。我们会发现“橙色”的零售商的退货模式更不稳定(前期有大量持续退货),而“青色”的零售商退货非常稳定。因此,&橙色&零售商似乎有些可疑。当然,这只是一种解读方法,不代表一定有问题。&/p&&p&&b&3.2. 时间独立下的建模&/b&&/p&&p&&b&3.2.1. 无监督学习&/b&&/p&&p&如果我们假设时间对于欺诈并没有影响,那么我们有很多无监督学习可以用来检测异常值。&/p&&ol&&li&像某位答主提到的&b&Isolation Forest&/b&就是一种非常稳定的算法,是周志华老师提出的。而且在Sklearn里面已经得到了实现。基本的原理就是一种集成学习,通过计算每个数据点需要多少次节点拆分(splitting)才能被划分到独立的空间。&b&异常点因为和其他正常点离得较远不大相似,因此更容易用很少的拆分就可以被划到独立的空间里面去。&/b&&/li&&li&各种&b&Density Based的聚类方法(CBLOF)&/b&。此处需要注意,大家熟知的K-Means为原型的聚类,如K-Modes都不大适合用于异常值检测,因为其本身很容易受到异常值和噪音的扰动。&/li&&li&各种以K近邻(KNN)为原型的检测方法。从本质上说,和聚类方法是比较类似的。&/li&&/ol&&p&&b&3.2.2. 统计学密度估计及分布测试&/b&&/p&&p&比较简单的做法可以尝试将数据拟合到假设的混合模型上(finite mixture models),再通过统计学测试检查异常点、 一般不大推荐直接这么做,因为需要对于正常数据分布的深刻了解,才能做出对于数据分布的正确推断。&/p&&p&&b&3.2.3. 监督学习&/b&&/p&&p&就像上文提到的,我不太建议直接用监督学习。当然,在特定场合下如果需要使用的话,比较出名的就是MetaCost框架,可以结合各种基础学习器使用。&/p&&p&&b&3.3. 时间相关及独立的交叉验证&/b&&/p&&p&其实很多问题不是非此即彼,换句话说,时间独立和时间独立可能找到相似的异常点。在项目允许的情况下,我们大可以将两种时间假设都做一遍,之后求交集。若出现在交集中,我们对于该点是诈骗的信心会进一步上升。&/p&&h2&&b&4. 反欺诈项目的操作顺序(3) - 如何验证欺诈点?&/b&&/h2&&p&假设我们通过上面的无监督学习得到了一些“潜在的欺诈点”,我们可以做一些分析来验证它们是否真的是欺诈。&b&首先我必须声明,这种归纳是存在很大偏见的,但很难避免&/b&。&/p&&p&举例,我们可以对比异常值数据作为样本(sample)与总体(population)的各项数据的统计值(如均值方差等),从统计学上证明它们是有显著差异的。但有显著差异并不代表他们一定是欺诈,只能说明它们不同。&/p&&p&当我们从统计学上证明其存在显著差异后,我们就开始想要归纳潜在的欺诈原因。以某供货商的数据为例,我们发现一个产品的进货变多、退货变少,但单位收益却上升,这是有问题的。&/p&&p&于是我们就可以大胆的推测他的进货和退货不是同一种产品,即在退货时用了比较便宜商品但拿到了更多的退货钱。&/p&&p&&b&把这个故事讲给领域专家以后,他们会支持、质疑、甚至反对这个看法。根据领域专家的反馈,我们可以不断的调整优化模型,期待发现更多的问题。有的时候,也可以直接叫领域专家来帮忙分析为什么一些数据可能是欺诈。&/b&&/p&&h2&&b&5. 总结 - 如何构建可行的欺诈检测方案?&/b&&/h2&&p&首先,我们必须先要认清一个残酷的现实: &b&单纯依靠机器学习模型来检测欺诈是愚蠢的。至少在现阶段我们不能单纯依靠纯粹的数据模型来做这一点。比较折中且可行的方法是做 混合模型(hybrid model),也就是把人为规则和机器学习模型合二为一,一起来使用&/b&。&/p&&p&首先我们通过对领域专家的访谈和对历史数据的分析,可以得到一些非常可靠的评判标准。以保险行业为例,如果一个人刚买短期保险没两天就意外身亡,这存在欺诈的风险就很高。&b&这样的标准或许从机器学习中可以学到,或许学不到。如果有成本更低方法做到更好的效果,不要迷信全自动模型。&/b&&/p&&p&&b&总结来说,反欺诈模型难度很高,而且需要和领域专家一起协作才能有最好的结果。机器学习从业者千万不要闭门造车,试图自己靠调参就搞个大新闻。&/b&&/p&&p&&b&我个人推荐的步骤是:&/b&&/p&&ol&&li&&b&对数据进行必要的可视化,如MDS&/b&&/li&&li&&b&同时考虑时间是否是重要因素,如果是那么进行时序分析&/b&&/li&&li&&b&用无监督学习得到一些可能的异常点,如Isolation Forests &/b&&/li&&li&&b&通过统计学方法分析得到的异常点是否有显著的不同,有特征可供我们研究&/b&&/li&&li&&b&归纳特征并构造一个故事,与领域专家共同验证故事的可靠性&/b&&/li&&li&&b&重复1-5直到被派到下一个项目上搬砖,争取找到尽量多有效的欺诈&/b&&/li&&li&&b&构造[规则+机器学习]的混合模型,进一步调参优化模型&/b&&/li&&/ol&&p&鉴于篇幅,很多有趣的做法都没法详谈,比如时间序列上的聚类和半监督异常检测,有兴趣的朋友可以继续深入挖掘。&/p&&p&------------------------------------------------------------}

我要回帖

更多关于 木驴不应该很爽吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信