1.1.3 数据挖掘工程师

1.职业特点

数据挖掘是数据库知识发现中的一个步骤。数据挖掘一般是指通过算法从大量的数据中搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。

数据挖掘主要侧重解决四类问题:分类、聚类、关联和预测(定量、定性)。数据挖掘的重点在于寻找未知的模式与规律。

如我们常说的数据挖掘案例:啤酒与尿布,这就是事先未知的,但又是非常有价值的信息。数据挖掘主要采用决策树、神经网络、关联规则、聚类分析等统计学、人工智能、机器学习等方法进行。数据挖掘的产出为输出模型或规则,并且可相应得到模型得分或标签,模型得分如流失概率值、总和得分、相似度、预测值等,标签如高中低价值用户、流失与非流失、信用优良中差等。

数据挖掘和数据分析最容易混淆,两者都是从数据里面发现有价值的信息,从而帮助业务运营、改进产品以及帮助企业做更好的决策。两者不同在于:数据分析更加依赖于思维层面,通过逻辑推理,并借助一些数学统计知识对假设进行验证,从而支持原假设或者推翻原假设;而数据挖掘更偏向技术层面,主要是运用一定的编程技巧和统计知识从海量数据中发现字段之间的相关关系,元素的聚散程度,数据里包含的关键特征等。数据挖掘和数据分析互为手段,对于数据分析而言,数据挖掘不过是进行假设验证过程中的一个步骤而已,对于数据挖掘而言,数据分析不过是为了寻找更有效率、更准确和更容易解释的算法的一种方法。

2.工作内容

数据挖掘工程师的工作内容如下。

1)算法挖掘:运用算法从海量数据中寻找有价值信息,并能优化算法。

2)编程:算法实现、对于算法程序的优化,提升程序的运行效率。

3)分析:测试和验证算法程序,并对于算法挖掘结果做出合理的解释,可能会加入数据分析职能。

4)业务:参与爬虫、搜索、个性化推荐、广告、流量变现等课题。

5)产品:负责大数据挖掘等新产品的设计与开发中的模型和算法部分。

6)数据开发:数据仓库设计、处理海量数据,可能会加入数据开发职能。

3.技能要求

对数据挖掘工程师的技能要求如下(见图1-5)。

1)数据挖掘算法、机器学习、自然语言处理、人工智能、个性化推荐。

2)数据结构和程序算法。

3)数据处理和编程:Java、Python、C++、SQL。

4)Linux操作系统。

5)数据挖掘工具:SPSS、SAS、R。

6)大数据:Hadoop、Spark、Mahout、MLlib。

7)行业经验:金融、医疗、空间地理等。

●图1-5 数据挖掘工程师技能谱系图

4.职业发展和薪酬

数据挖掘工程师相比其他职业的起薪会高一些,但是入门难度也更大一些。主要因为这个职业需要两个相对硬核的能力:一个是数据挖掘算法能力,另一个是编程能力,这两个技能的学习曲线都较长。

刚入行的数据挖掘工程师需要较为精通数据结构和各种数据挖掘算法,这样基本能够胜任团队内的一些工作;进入高级阶段后,必须能够独当一面,能够制订各种模型策略来推动业务;如果继续往专业方向走,就是往人工智能(如机器学习)方向走,这类职位通常需要高学历来支撑,工资收入也非常可观。当然这种发展路线并不是一成不变的,也可以一开始就往人工智能方向走,随着经验的增长,逐步从初级职位转到高级职位,如图1-6所示。

●图1-6 数据挖掘职业进阶和薪酬发展

招聘岗位举例1

某互联网公司数据挖掘工程师职位描述

薪资:15000~25000元/月。

职责描述:

1)基于海量数据(主要是石油勘探开发类数据),深度挖掘关键特征模式,最终产生行业价值。

2)负责大数据应用算法的设计、研发与产品化。

任职要求:

1)硕士及以上学历,计算机专业方向优先。

2)良好的逻辑思维能力,能够从海量数据中发现有价值的规律。

3)熟悉大规模图挖掘、机器学习、自然语言处理、分布式计算等相关技术,并具备工程实践经验。

4)熟练运用各种常用算法和数据结构,有独立的实现能力。

5)熟练使用Java语言、Python、Oracle/MySQL数据库系统、Linux操作系统者优先。

6)熟悉Hadoop/Spark等一个或多个分布式计算框架。

招聘岗位举例2

某互联网公司高级数据挖掘工程师职位描述

薪资:30000~50000元/月。

职责描述:

1)负责装修业务中的资源分配,调度算法,用户增长策略模型的研究与开发。

2)结合装修业务流程,分析与挖掘各种潜在关联,不断优化模型效果,用技术标准化产业服务者,提高业务指标。

3)追踪前沿技术,结合装修业务特点,探索将前沿的算法技术赋能业务。

任职要求:

1)本科及以上相关学历,具有3年以上研发工作经验。

2)优秀的数据分析能力,扎实的数据结构和算法功底。

3)有较强的学习能力,具备较好的沟通和表达能力,能完成跨部门沟通与协作。

4)至少熟练掌握编程语言Java、Scala、Python、C++中的一种,并可以熟悉各种算法模型的实现与接口调用。

5)熟悉分布式计算开发(Hive、Storm、Spark)至少某一方面,有较深的理论研究和实践经验者优先。

6)有智能设计、用户增长、Feed流推荐、全局调度优化等项目经验者优先。

招聘岗位举例3

某互联网公司机器学习、算法工程师职位描述

薪资:50000~70000元/月。

任职要求:

1)一线互联网公司3年以上机器学习算法开发实际经验,熟练使用经典机器学习算法,包括但不限于LR,GBDT,随机森林和神经网络。

2)计算机/数学/工程类专业硕士或博士学位。

3)具备扎实的代码能力和数据结构基础,熟练使用Python、C++、Java开发和部署线上机器学习算法。

加分项:

1)一线互联网公司3年以上广告、搜索或推荐系统算法开发经验。

预测、点击、转化、搜索算法:离线模拟器替代真实用户点展反馈生产大量生成探索样本来提升融合模型能力,在线序列探索策略,生产更富多样性的随机去偏探索序列,利用用户的标注拓展序列生成空间。

广告算法:效果类广告CTR模型优化,从GBDT到FM的模型迁移,广告流量预估,在线流量分配。图片搜索Rank算法等。

2)对最新技术趋势保持追踪,了解最近两年机器学习领域的最新研究成果,包括深度学习算法和TensorFlow平台。

3)熟练使用大数据技术做数据加工、特征提取和机器学习算法的开发及上线。

4)具备良好的沟通能力,对业务和新技术的好奇心,具备优秀的解决问题能力和逻辑思维。