智客公社

标题: 作为新萌:怎样成为一命数据发掘工程师(附长大脑图) [打印本页]

作者: 小莎莉    时间: 2019-6-11 12:17
标题: 作为新萌:怎样成为一命数据发掘工程师(附长大脑图)
不管是数据分析师还是数据发掘工程师,我们的目的都是看法数据,从数据中发现需求的信息。

[attach]155687[/attach]



数据发掘的技术过程:

数据清算(消弭噪音或不分歧数据)

数据集成(多种数据源可以组合在一同)

数据选择(从数据库中提取与分析义务相关的数据)

数据变换(数据变换或一致成合适发掘的方式;如,经过汇总或聚集操作)

数据发掘(基本步骤,运用智能方法提取数据形式)

形式评价(根据某种兴味度度量,辨认提供知识的真正风趣的形式)

知识表示(运用可视化和知识表示技术,向用户提供发掘的知识)

所需求的技能

[attach]155688[/attach]



做数据分析,统计的知识一定是需求的,Excel、SPSS、R等是需求掌握的基本技能。

我是做数据发掘的,所以重点讲一下数据发掘方面的技能。我本身是学数学专业的,接触数学比较多。数据发掘要从海量数据中发现规律,这就需求一定的数学知识,最基本的比如线性代数、高等代数、凸优化、概率论等。

举个栗子,比如朴素贝叶斯算法需求概率方面的知识,SKM算法需求高等代数或者区间论方面的知识。当然,你可以直接套模型,R、Python这些工具有现成的算法包,可以直接套用。但假如你想深化学习这些算法,最好去学习一些数学知识,也会让你当前的路走得更顺畅。

我们常常会用到的言语包括Python、Java、C或者C++,我本人用Python或者Java比较多。有时用MapReduce写程序,再用Hadoop或者Hyp来处理数据,假如用Python的话会和Spark相结合。

可以发掘的数据类型:

关系数据库、数据仓库、事务数据库、空间数据库、工夫序列数据库、文本数据库和多媒体数据库。

关系数据库:是表的集合,每个表都赋予一个独一的名字。每个表包含一组 属性(列或字段),并通常存放大量 元组(记录或行)。关系中的每个元组代表一个被独一关键字标识的对象,并被一组属性值描画。

数据仓库:经过数据清算、数据变换、数据集成、数据装入和定期数据刷新构造

工作内容

[attach]155689[/attach]



数据分析更倾向统计分析,出图,作报告比较多,做一些展现。知乎上有一个叫团支书的答主,他就比较倾向于数据分析。

数据发掘更倾向于建模型。比如,我们做一个百货的数据分析。万达电商的数据非常大,详细要做什么需求项目组本人来定。百货数据能给我们的业务什么样的推进,我们从这一点动手去思索。我们从中挑出一部分停止用户分群。

消费者在商场购物消费会有一个刷卡的数据记录,万达会员卡的卡号信息以及购物记录也会在数据中呈现,数据体量是很大的。我们用这些数据做一个聚类,分成几个用户群,比如倾向亲子的、时兴女装和朴素品的、汽车配饰的,分群之后再去给他们做引荐就相对愈加容易。

我们做用户分群会用到一些聚类模型,比如K-means、K-means++等,处理数据的维度特别大,是300w*142维,假如全部拿来聚类,效果不太好,由于有一些是没有含义的,所以我们会停止降维。

降维普通会用到主成分分析,我们用的是深度学习的一个算法——Auto Encoder。它有一个输入层,一个隐含层,一个输入层,数据从输入层出来时会停止编码,从输入层出来时解码,比如我们把142维数据灌出来,在隐含层降成50维数据,输入还是142维数据。也就是说把一末尾的142维数据投射到50维数据之后,再还原成142维,这142维与之前的142维数据之间的映射关系是一样的,那么我们就可以用中间50维的数据做聚类分析。

最后我们得到了一个评价目的,你可以了解为这个目的数值越小越好,越小代表各个值离中心越近。假如不用深度学习算法,得出的评价目的是20万左右,而降维之后得出的目的是600多,效果是很分明的。

我讲这个例子也是想告诉大家,假如你不具有数学知识,只是去套模型也可以做,但永远只是停留在入门阶段。

大家假如想做数据发掘工程师的话,我建议编程言语至少要会一门,数学方面至少需求线性代数、概率论和凸优化的知识,了解一些机器学习算法的推导,以及深度学习的算法。这个学习起来并不是特别难,我从毕业到如今有一年的工夫,一些基本的算法曾经了解的差不多了。

发展的建议

每个人都有本人的偏好。有的人会说,数学太难了,我不想做发掘,就想做一些数据分析,做一些酷炫的分析图,这个当然可以。假如想要本人的职业生涯有长足发展的话,不要贪多贪杂,在某一个范畴深化出来。你可以结合本人的兴味,在那一个范畴成为专家。

提高本人的技术和业务才能。技术才能相对来说是比较好提高的,学R或者Python这类简单的言语是很快的,Java或者C++会比较慢。当技术才能提高到一定程度的时分,就很难跟别人有技术上的差别了。能够工作一年的时分你只会R,等两三年之后相关的工具技术你都会了,这个时分你跟其他同事的区别就在于业务才能。

很多做技术的一末尾会觉得技术就是特别牛特别凶猛,但是光有技术并不能让你成为公司的核心成员,必需要提高本人的业务才能。假如你做的技术出的结果跟业务不相关,对公司无法产失效益,指导是不会要这个结果的,除非你是研讨人员。

但无论是机器学习,还是数据发掘,你一定听说过很多很多,名字叼炸天的传说中的,“算法”,比如:SVM,神经网络,Logistic回归,决策树、EM、HMM、贝叶斯网络、随机森林、LDA... ....其实还是很多很多!无论你排十大算法还是二十大算法,总感觉只触及到了冰山一角!真是学海无涯啊- -!!

当然,学习机器学习看书是必备的,总不能靠冥想吧。。。

学习书籍引荐

有的书引见机器学习,会是这样一种思绪:就是单独的一个一个的算法引见,引见个十几个,一本书的篇幅差不多也就完了。

李航博士的那本《统计学习方法》基本属于这种套路。当然,该书在国内是备受推崇的一本。客观上讲,国人写这方面的书很少,而李博士的著作也不像其他那种大学教材一样东拼西凑,可谓良知之作。但就本书的思绪来说,我以为:假如读者就单独的某一个算法想有所了解,参考该书应该会有播种。但系统化上还是优化空间的,比如从一个算法到另外一个算法,之间的联络是什么,推进算法更新和晋级的需求又在哪里?

另外一种该类型的书,会把算法按照它们的完成的功能和目的,分成比如 Regression、Classification、Clustering等等等等的几类,然后各种讲可以完成聚类的算法有A、B、C,可以完成回归的有D、E、F。。。而且我们也知道,机器学习又可分为有监督、无监督以及半监督的,或者又可分为贝叶斯派和概率派两大阵营,所以按类别来引见其中的算法也是一种很常见的思绪。

这样的书代表作是Pang-Ning Tan, Michael Steinbach 和Vipin Kumar的那本《数据发掘导论》,这样的书基本上对于构建一个大概的机器学习体系还是有裨益的。但是就初学者而言,其实这个体系还可以再优化。这也是我根据个人的一些阅历想向各位引见的一个基本的学习道路图,在我看来知识应该是有联络的,而不是孤立的, 找到这种外部隐藏的线索就好像获得了阿里巴巴的口诀,才能开启更大的宝藏。

当然,正式学习之前,你所需求的预备知识(次要是数学)应该包括:微积分(偏导数、梯度等等)、概率论与数理统计(例如极大似然估计、地方极限定理、大数法则等等)、最优化方法(比如梯度下降、牛顿-拉普什方法、变分法(欧拉-拉格朗日方程)、凸优化等等)——假如你对其中的某些名词感到生疏,那么就阐明你尚不具有深化展开数据发掘算法学习的才能。你会发现四处都是门槛,很难继续停止下去。

学习途径

第一条线路:

(基于普通最小二乘法的)简单线性回归 -> 线性回归中的新停顿(岭回归和LASSO回归)->(此处可以插入Bagging和AdaBoost的内容)-> Logistic回归 ->支持向量机(SVM)->感知机学习 -> 神经网络(初学者可先次要关注BP算法)-> 深度学习

之所以把它们归为一条线路,由于一切这些算法都是围绕着 y = Σxiβi,这样一条简单的公式展开的,假如你抓住这条线索,不断探求下去,就算是抓住它们之间的绳索了。其中蓝色部分次要是回归,绿色部分次要是有监督的分类学习法。

基于普通最小二乘的线性回归是统计中一种有着非常悠久历史的方法,它的运用甚至可以追溯到高斯的时代。但是它对数据有诸多要求,例如特征之间不能有多重共线性,而且岭回归和LASSO就是对这些成绩的修正。

当沿着第一条道路学完的时分,其实你曾经攻克机器学习的半壁江山了!当然,在这个过程中,你一定时辰问问本人后一个算法与前一个的联络在哪里?最后,人们从哪里出发,才会如此设计出它们的。

第二条道路:

K-means -> EM -> 朴素贝叶斯 -> 贝叶斯网络 -> 隐马尔科夫模型(基本模型,前向算法,维特比算法,前向-后向算法) (->卡尔曼滤波)

这条线路所触及的基本都是那些各种画来画去的图模型,一个学术名词是 PGM 。这条线的思绪和第一条是截然不同的!贝叶斯网络、HMM(隐马尔科夫模型),也就是绿色字体的部分是这个线路中的核心内容。而蓝色部分是为绿色内容做预备的部分。K-means 和 EM 具有与生俱来的联络,看法到这一点才能阐明你真正读懂了它们。而EM算法要在HMM的模型训练中用到,所以你要先学EM才能深化学习HMM。所以虽然在EM中看不到那种画来画去的图模型,但我还把它放在了这条线路中,这也就是缘由所在。朴素贝叶斯外面的很多内容在,贝叶斯网络和HMM里都会用到,相似贝叶斯定理,先验和后验概率,边缘分布等等(次要是概念性的)。最后,卡尔曼滤波可以作为HMM的不断深化或者后续扩展。虽然很多machine learning的书里没把它看做是一种机器学习算法(或许那些作者以为它应该是信号处理中的内容),但是它也的确可以被看成是一种机器学习技术。而且参考文献[4]中,作者也深上天揭示了它与HMM之间的严密联络,所以红色的部分可以作为HMM的后续扩展延伸内容。

几个小tips

[attach]155690[/attach]



学历重要吗?

校招渠道比较看重学历,但是随着工作阅历的添加,你的技术达到了一定的程度,你是二本三本实践上和985毕业的人并没有太大区别。当然,对于应届毕业生来说,学历高学校好更有优势,这是大厂的敲门砖。

也有人会问需不需求考研。考研要跟你当前的工作道路结合起来,假如想做数据发掘,就可以选择考数学类专业的研讨生,可以提高本人的竞争力。

以我的阅历来说,我本科是在湖北一个很普通的学校,研讨生报考武汉大学的计算数学专业。但由于两分之差,调剂到了基础数学。当时家人劝我服从调剂,好歹研讨生是武大出来的。不过我的兴味不在基础数学,这个专业也并不能给我想要从事的数据发掘加分,还不如先在工作中积累一些实际阅历,所以就放弃了读研。假如我工作几年之后需求提升才能,可以再去考个研讨生,不一定非要如今就考。

转行可不可以学?

如今这个行业越来越火,很多人想要转行做数据分析。转行学数据分析师是可以的,但最好先去看一下招聘单位的工作内容,假如招聘要求懂PPT、Excel之类的就可以不要思索了,由于这种通常招的是统计员,不是分析师,对你的职业道路不会有太大的协助。假如要求会Python、R或者建模,你可以去尝试一下。能够别人不一定会要你,但假如你表现出足够的诚意和自学才能的话,依然有被录用的机会。

我大学读数学专业时只学了MATLAB,学了不到一年,当时在学校参加MATLAB建模比赛得了一等奖,觉得本人挺牛。但是在找工作时发现很多公司不用MATLAB或者SAS,由于比较贵,很多都会用开源的R。面试的时分,我说我不知道R是什么,指导说,给你两个星期,学。后来在工作里一点点看书,也就入门了。

跳到第四个成绩,选数据分析还是数据发掘?

很多人觉得数据发掘很凶猛,但是一转行就跳到数据发掘是不太能够的。数据发掘要求比较深的代码功底。

一末尾我也不会写代码,毕业之后我去了一家公司,Title是中级数据分析师,但干的是数据发掘的事儿。刚入职的一个月内,老板让我用Python出结果。之前没学过Python,我边学边做,这样把Python也学会了。后来在这家公司做过一个渣滓文本分类的项目,这个方面以前也没有接触过,就一边查材料一边本人做。一末尾用公式套,但是准确率只要80%左右,我就末尾看公式的推导,看懂公式原理之后就知道某些地方是可以挑优的,本人可以对算法做一些改进。不要只套公式,也要弄明白其中的公式推导,搞懂源代码,渐渐提高本人的代码才能。

怎样选公司

大公司当然是最好的。大公司普通走校招,假如你经过校招进了大公司,但是非核心的岗位,比如百度搜索方面的发掘,当然是最好的,假如进入不了这样的岗位,不如去一些新发展起来的公司,比如美团、滴滴,这样的公司有一定的数据量,也会有一些比较强的人。

第三类公司是创业公司。假如是刚毕业最好不要选创业公司,风险比较大。你比较难以从表面上判别这家公司能不能存活上去,有没有牛人值得跟。而一些二线公司的业务骨干大多是从BAT过来的,具有比较丰富阅历,跟着他们学习能让本人疾速长大。

怎样面试

一定要诚实。不要造假工作阅历和年限,没有必要,对本人也没有好处。毕业生求职时可以表现得真诚一点,不能说一上手就能做很多工作,但是可以展现本人的学习才能。

我也不是一末尾就做数据发掘,也是在工作中渐渐转。假如你真的想做这一行,就要有决计,不能焦急。

附数据发掘脑图

[attach]155691[/attach]



关注本微信,回复『数据发掘』得到高清无码大图

[attach]155692[/attach]

作者: 墨尔本_想睡    时间: 2019-6-11 12:26
分享了
作者: 3wingsun34    时间: 2019-6-11 12:35
分享了
作者: chaote56    时间: 2019-6-11 12:43
分享了
作者: eminent1985    时间: 2019-6-11 12:47
分享了
作者: 老十八1997    时间: 2019-6-12 14:24
珍爱生命,果断回帖。
作者: 天使之鱼    时间: 2019-6-13 15:36
有没有什么需要注意的?




欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4