数据挖掘,从字面上理解,就是在数据中找到有用的东西,哪些东西有用就要看具体的业务目标了。最简单的就是统计应用了,比如电商数据,如淘宝统计过哪个省购买泳衣最多等。

进一步,可以基于用户的浏览、点击、收藏、购买等行为推断用户的年龄、性别、购买能力、爱好等能表示一个人的画像,就相当于用这些挖掘出来的属性来刻画一个人,这些还是最简单的东西,更深层次的比如预测(股票预测),但是比较难。

1、数据挖掘的过往

说到数据挖掘。往往与机器学习离不开。比如分类、聚类、关联规则挖掘、个性化推荐、预测、神经网络、深度学习等。

很多年前说人工智能AI(比如产生式系统、专家系统等,好像现在提得比较少了),90年代AI到了瓶颈阶段,机器学习是一个突破口,现在机器学习又遇到了瓶颈阶段,深度学习又是一个突破口(其实神经网络出来了很久,但是为什么中间一段时间沉寂了,在70年代左右出现了低潮(根据评论修改),我归结是两点:

第一,神经网络就像一个黑夹子一样,很多东西不透明,模型的解释性不强,以及当时没办法处理非线性分类问题(后面多层感知器便可以对非线性问题进行拟合,如解决XOR问题)。参数过多,训练复杂,容易出错,容易过拟合,无法保证全局最优,加上很多问题无法用数学方法证明(个人理解)等等。

科学家和工程师还是有区别的,科学家都想把一个问题归结为数学问题,然后证明出来,他们就会认为是有意义的,数学上证明其有效往往比做千百个实验说明其有效要好些吧,工程师往往更在乎效果与结果),直到后来出现了BP算法。

第二,得益于现在的大规模计算工具,能够处理PB级别的数据了。总之现在人工智能还远没达到人类的水平,最后结果会怎样,这个暂时不设想。

目前正处于大数据时代,很多企业拥有巨大的数据,比如阿里拥有消费数据、百度拥有搜索数据,腾讯拥 有社交数据,消费数据与搜索数据都可以直接变现形成商业模式,而社交数据暂时还无法直接变现,至少企鹅现在还在探寻中。举个例子,你的朋友圈,qq空间到处是广告,你是不是很讨厌?

数据有了,还有个重要的方面,处理数据的能力,也就是数据处理工具,能够处理这么大的数据量,二者不可或缺,缺一谈什么大数据都是耍流氓。

2、数据挖掘工程师应具备的技能

首先你数学知识肯定要扎实吧。统计与概率论是最基本(也有人说现在的机器学习是统计学习,确实有道理)、微分与积分肯定要知道、数学公式要看的懂吧,进阶阶段最优化,随机过程等。建议去看看机器学习十大算法与一些深度学习的东西,多看大牛的博客。

其次,作为一个工程师,肯定要会写代码吧。不懂写代码的工程师都是扯淡,不要写代码的数据挖掘与机器学习,那是研究员,懂得一门高级语言与一门脚本语言就差不多了(如JAVA或C++,Python或R,个人推荐Java与Python,因为像Hadoop、Spark、Hive、MPI之类的都对Java提供了很方便的接口,Python写脚本很爽),还需要懂得Linux、Shell、SQL,这都是个人意见,至少在阿里,用java+sql+python+shell,阿里有个很牛逼的东西,叫做ODPS,现在叫MaxCoupute,可以去阿里云官网查查相关资料。

对于你所说的excel、SAS、SPSS,数据分析人员专用,因为工程师嘛,编程语言还是必须的。

另外是工具,会用就行。对于是否需要学习hadoop、hive之类的,个人意见是只要知道用,然后怎么用,怎么在上面实现一些算法,怎么去优化自己写的程序就差不多了,它们只是工具,而且更新得很快,就说hadoop吧,我还没完全搞明白,就逐渐被spark取代了,记住,这些只是工具而已。推荐个加深你数据挖掘功力的东西weka(单机版的)与mahout(分布式的,有基于hadoop与spark),都是开源的。

最后,对于工作是否需要设计新算法,我觉得在企业还是没有要求这么高。除非你觉得自己很牛逼,想向google看齐,但是设计一个好的算法并能解决实际问题的算法,不是一朝一夕的,个人观点,很多算法可以想出来,最大的问题就是怎样去证明其正确,其有效。想到企业中去,多看看google与ms工程性的文章,想研究就多看看学术大牛的文章,比如ICML,IJCAI,KDD,NIPS,CVPR等。大部分工作是,将已有的机器学习与数据挖掘算法应用到具体的实践中,根据业务场景与数据特点对算法进行改造或者调整等。

举个例子,你在淘宝上买一件衣服,系统怎样向你推荐你感兴趣的并且和这件衣服搭配的裤子或者饰品,这就是数据挖掘工程师的一方面工作。

3、常用的知识点介绍

对于数据挖掘与机器学习,也不是小小的几百字能说清楚的,所以再补充一些想从事机器学习与数据挖掘的需要学习的知识点:

1)Basis(基础):

MSE(均方误差),LMS(最小均方),LSM(最小二乘法),MLE(最大似然估计),QP(二次规划),CP(条件概率),JP(联合概率),MP(边缘概率);

Bayesian Formula(贝叶斯公式),L1 /L2(L1/L2正则,以及更多的,现在比较火的L2.5正则等);

GD(梯度下降),SGD(随机梯度下降),Eigenvalue(特征值),Eigenvector(特征向量),QR-decomposition(QR分解),Quantile (分位数),Covariance(协方差矩阵)。

2)常见分布:

离散型分布:贝努利分步/二项分布;负二项分布;多式分布;几何分布;超几何分布;泊松分

连续型分布:均匀分布;正态分布/高斯分布;指数分布;对数正态分布;Gamma分布;Beta分布;狄利克雷分布;瑞利分布;柯西分布;韦伯分布

三大抽样分布:卡方分布;t-distribution;F-分布

3)数据预处理:

缺失值填充;离散化;映射;归一化/标准化)。

4)采样:

简单随机采样;离线等可能K采样;在线等可能K采样;等比例随机采样;接受-拒绝采样;重要性采样;马尔科夫蒙特卡罗采样算法。

5)聚类:

K-Means;K-Mediods;二分K-Means;FK-Means;Canopy;谱聚类;混合高斯模型-期望最大化算法解决;K-Pototypes;基于划分;基于层次;基于层次;基于密度;基于密度和基于网格;2014年Science上的密度聚类算法等。

6)聚类效果评估:

纯度;芮氏指标;调整的芮氏指标;规范化互信息;F测量等。

7)分类&回归:

线性回归;逻辑回归;多分类逻辑回归;广义线性模型;岭回归/L2正则最小二乘回归;正则最小二乘回归;随机森林;决策树;梯度下降决策树;分类回归树;近邻;支持向量机;核函数;多项式核函数;高斯核函数;径向基函数;字符串核函数;朴素贝叶斯;贝叶斯网络/贝叶斯信度网络/信念网络;线性判别分析;集成学习;自适应增强;最大熵模型。

8)分类效果评估:

混淆矩阵;精确度;召回率;准确率;F得分;ROC曲线;AUC面积;Lift曲线;KS曲线。

9)概率图模型:

贝叶斯网络/贝叶斯信度网络/信念网络;马尔科夫链;马尔科夫模型;最大熵马尔科夫模型;条件随机场;马尔科夫随机场。

10)神经网络:

人工神经网络;误差反向传播;HN;循环神经网络;回声状态网络;长短记忆神经网络;CW-RNN;时钟驱动循环神经网络等。

11)深度学习:

自动编码器;堆叠自动编码器;稀疏自动编码器;去噪自动编码器;收缩自动编码器;受限玻尔兹曼机;深度信念网络;卷积神经网络;词向量学习模型。

12)降维:

线性判别分析/Fish线性判别;主成分分析;独立成分分析;奇异值分解;因子分析法。

13)文本挖掘:

向量空间模型;词向量学习模型;词频;词频-逆向文档频率;互信息;期望交叉熵;二次信息熵;信息增益;信息增益率;基尼系数;x2统计量;文本证据权;优势率;潜在语义分析;基于概率的潜在语义分析;潜在狄利克雷模型;统计语言模型;神经概率语言模型;连续词袋模型;Skip-gram等。

14)关联挖掘:

Apriori;频繁模式树生长算法;AprioriAll;Spade。

15)推荐引擎:

基于人口统计学的推荐;基于内容的推荐;协同过滤;基于用户的协同过滤推荐;基于项目的协同过滤推荐。

16)相似性与距离度量:

欧式距离;曼哈顿距离;切比雪夫距离;闵可夫斯基距离;标准化欧氏距离;马氏距离;余弦;汉明距离/编辑距离;杰卡德距离;相关系数距离;信息熵;KL散度/相对熵等。

17)最优化:

无约束优化:变量轮换法;模式搜索法;可变单纯形法;梯度下降法;牛顿法;拟牛顿法;共轭梯度法。

有约束优化:近似规划法;可行方向法;罚函数法;乘子法。

启发式算法:模拟退火算法;遗传算法

18)特征选择:

互信息;文档频率;信息增益;卡方检验;基尼系数。

19)异常点检测:

基于统计;基于距离;基于密度;基于聚类。

20)基于学习的排序:

Pointwise:McRank;

Pairwise:RankingSVM,RankNet,Frank,RankBoost;

Listwise:AdaRank,SoftRank,LamdaMART;

21)工具:

MPI;Hadoop生态圈;Spark;BSP;Weka;Mahout;Scikit-learn;PyBrain…以及一些具体的业务场景与case等。

传说中的数据挖掘工程师,究竟是做什么的?相关推荐

  1. 年薪30W+的IC验证工程师究竟是做什么的?一文为你讲解清楚

    众所周知IC行业是个投入非常大的行业,做一颗芯片开模的费用就达到了百万级,在芯片设计的过程中光BUG就可以达到上千个.如果这些BUG没有被发现的话,就可以遭受巨大的损失. 因此验证就是保证芯片功能正确 ...

  2. 【数据挖掘】数据挖掘工程师是做什么的?

    [数据挖掘]数据挖掘工程师是做什么的? 2016-08-10 17:16 数据挖掘,从字面上理解,就是在数据中找到有用的东西,哪些东西有用就要看具体的业务目标了.最简单的就是统计应用了,比如电商数据, ...

  3. 数据挖掘工程师主要做什么?

    转自:微点阅读  https://www.weidianyuedu.com/content/5317504350632.html 数据挖掘工程师负责科技数据挖掘算法模型的构建.应用.评测.报告.下面是 ...

  4. 数据挖掘工程师是做什么的?

           数据挖掘,从字面上理解,就是在数据中找到有用的东西,哪些东西有用就要看具体的业务目标了.最简单的就是统计应用了,比如电商数据,如淘宝统计过哪个省购买泳衣最多.哪个省的女生胸罩最大等,进一 ...

  5. 转行成为大数据工程师要怎么做?

    转行成为大数据工程师要怎么做? [导语]近几年,大数据行业的发展非常迅速,大数据方向也成了许多人转行得目标,因为前景好,薪资高,不少人已经考虑转行成为大数据工程师,那么转行成为大数据工程师要怎么做?下 ...

  6. 什么是软件测试,软件测试究竟是做什么的

    我犹豫了很久,想来想去还是写了一篇文章,这篇文章可以告诉你什么是软件测试? 来看看官方的回答: 软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性.完整性.安全性和质 ...

  7. 算法工程师 数据挖掘工程师_数据工程师的崛起

    算法工程师 数据挖掘工程师 by Maxime Beauchemin 通过马克西姆·博赫明 数据工程师的崛起 (The Rise of the Data Engineer) I joined Face ...

  8. 数据分析的工作内容是什么,数据分析师、数据产品经理和数据挖掘工程师三个岗位之间,有什么联系和区别?

    数据分析工作内容: a.临时取数分析,比如双11大促活动分析:产品的流量转化情况.产品流程优化分析,等等: b.报表需求分析–比如企业常见的日报.周报.月报.季报.年报.产品报表.流量转化报表.经营分 ...

  9. 2013百度校园招聘数据挖掘工程师

    2013百度校园招聘数据挖掘工程师 一.简答题(30分) 1.简述数据库操作的步骤(10分) 步骤:建立数据库连接.打开数据库连接.建立数据库命令.运行数据库命令.保存数据库命令.关闭数据库连接. 经 ...

最新文章

  1. 2022-2028年中国硫化橡胶粉行业市场发展调研及竞争战略分析报告
  2. 澳大利亚悉尼科技大学招收人工智能/软件工程方向全奖博士生
  3. django syncdb命令失效
  4. boost::mp11::mp_same相关用法的测试程序
  5. 练习2.13 不用库函数,写一个高效计算ln N的C函数
  6. 京东自动评论脚本_京东时光机python脚本 自动完成任务
  7. eShopOnContainers 看微服务 ①:总体概览
  8. SQL Server【四】
  9. YJX_rxjh_21_3.2.3
  10. unity 动画 音频播放
  11. Web前端笔记和简历模板
  12. javascript弹出窗口代码
  13. Sniffer的使用
  14. 一文分析 Only fullscreen opaque activities can request orientation 报错原因及解决方案
  15. 数仓(二):数仓构建流程、数据中台建设
  16. m4a转mp3方法,m4a转mp3步骤
  17. 沉浸其中,二次元高清图片
  18. idea常用的十八个设置(程序员必会)
  19. 矩阵快速幂 51nod
  20. 职场必备, Word技巧大全

热门文章

  1. weiphp执行的流程
  2. Python数据分析美团商家,告诉你上海好吃好喝的地方
  3. Android支持多行文本省略Ellipsize
  4. 三季度净亏损大幅收窄,大换血的“下载一哥”迅雷还有救吗?
  5. 织梦程序(dedecms)主动推送插件,轻松提交给百度!
  6. linux 安装protobuf
  7. IOS/macOS安全相关资料的收集
  8. 给一个数加千分位格符C语言,给一个数值加千位分隔号
  9. 阿良老师 Docker学习_upperDir与数据持久化
  10. 计算机考试的准考证号忘了怎么办