- 工程能力
( 1 )编程基础:需要掌握一大一小两门语言,大的指 C++ 或者 Java ,小的指Python 或者 shell 脚本;需要掌握基本的数据库语言;
建议:MySQL + python + C++ ;语言只是一种工具,看看语法就好;
推荐书籍:《C++ primer plus 》
( 2 )开发平台: Linux ;
建议:掌握常见的命令,掌握 Linux 下的源码编译原理;
推荐书籍:《Linux 私房菜》
( 3 )数据结构与算法分析基础:掌握常见的数据结构以及操作(线性表,队,列,字符串,树,图等),掌握常见的计算机算法(排序算法,查找算法,动态规划,递归等);
建议:多敲代码,多刷题;
推荐书籍:《大话数据结构》《剑指 offer 》
( 4 )海量数据处理平台: Hadoop ( mr 计算模型,java 开发)或者 Spark ( rdd 计算模型, scala开发),重点推荐后者;
建议:主要是会使用,有精力的话可以看看源码了解集群调度机制之类的;
推荐书籍:《大数据 spark 企业级实战》 - 算法能力
( 1 )数学基础:概率论,数理统计,线性代数,随机过程,最优化理论
建议:这些是必须要了解的,即使没法做到基础扎实,起码也要掌握每门学科的理论体系,涉及到相应知识点时通过查阅资料可以做到无障碍理解;
( 2 )机器学习 / 深度学习:掌握 常见的机器学习模型(线性回归,逻辑回归, SVM ,感知机;决策树,随机森林, GBDT , XGBoost ;贝叶斯, KNN , K-means , EM 等);掌握常见的机器学习理论(过拟合问题,交叉验证问题,模型选择问题,模型融合问题等);掌握常见的深度学习模型( CNN ,RNN 等);
建议:这里的掌握指的是能够熟悉推导公式并能知道模型的适用场景;
推荐书籍:《统计学习方法》《机器学习》《机器学习实战》《 UFLDL 》
( 3 )自然语言处理:掌握常见的方法( tf-idf , word2vec ,LDA ); - 业务经验
( 1 )了解推荐以及计算广告相关知识;
推荐书籍:《推荐系统实践》《计算广告》
( 2 )通过参加数据挖掘竞赛熟悉相关业务场景,常见的比赛有 Kaggle ,阿里天池, datacastle 等。 入门从天池新人赛开始。
与数据挖掘相关的内容包括数据库、数据仓库、机器学习、信息检索。
学习数据挖掘基础:数据库理论、数学基础(包括数理统计、概率、图论等)、熟练掌握一种编程语言(java,python)、会使用数据挖掘工具软件(weka、matlab、spss)
数据挖掘的内容包括分类、关联分析、聚类和异常检测等几个方面
大数据挖掘分析经典案例有以下几种:
①预测产品未来一段时间用户是否会流失,流失情况怎么样;
②公司做了某个促销活动,预估活动效果怎么样,用户接受度如何;
③评估用户信用度好坏;
④对现有客户市场进行细分,到底哪些客户才是目标客群;
⑤产品上线投放市场后,用户转化率如何,到底哪些运营策略最有效;
⑥运营做了很多工作,公司资源也投了很多,怎么提升产品投入产出比;
⑦一些用户购买了很多商品后,哪些商品同时被购买的几率高;
⑧预测产品未来一年的销量及收益……
大数据挖掘要做的就是把上述类似的商业运营问题转化为数据挖掘问题。
一、如何将商业运营问题转化为大数据挖掘问题
那么,问题来了,我们该如何把上述的商业运营问题转化为数据挖掘问题?可以对数据挖掘问题进行细分,分为四类问题:分类问题、聚类问题、关联问题、预测问题。
1、分类问题
用户流失率、促销活动响应、评估用户度都属于数据挖掘的分类问题,我们需要掌握分类的特点,知道什么是有监督学习,掌握常见的分类方法:决策树、贝叶斯、KNN、支持向量机、神经网络和逻辑回归等。
2、聚类问题
细分市场、细分客户群体都属于数据挖掘的聚类问题,我们要掌握聚类特点,知道无监督学习,了解常见的聚类算法,例如划分聚类、层次聚类、密度聚类、网格聚类、基于模型聚类等。
3、关联问题
交叉销售问题等属于关联问题,关联分析也叫购物篮分析,我们要掌握常见的关联分析算法:Aprior算法、Carma算法,序列算法等。
4、预测问题
我们要掌握简单线性回归分析、多重线性回归分析、时间序列等。
二、用何种工具实操大数据挖掘
能实现数据挖掘的工具和途径实在太多,SPSS、SAS、Python、R等等都可以,但是我们需要掌握哪个或者说要掌握哪几个,才算学会了数据挖掘?这需要看你所处的层次和想要进阶的路径是怎样的。
第一层级:达到理解入门层次
了解统计学和数据库即可。
第二层级:达到初级职场应用层次
数据库+统计学+SPSS(也可以是SPSS代替软件)
第三层级:达到中级职场应用层次
SAS或R
第四层级:达到数据挖掘师层次
SAS或R+Python(或其他编程语言)
三、如何利用Python学习大数据挖掘
只要能解决实际问题,用什么工具来学习数据挖掘都是无所谓,这里首推Python。那该如何利用Python来学习数据挖掘?需要掌握Python中的哪些知识?
1、Pandas库的操作
Panda是数据分析特别重要的一个库,我们要掌握以下三点:
pandas 分组计算;
pandas 索引与多重索引;
索引比较难,但是却是非常重要的
pandas 多表操作与数据透视表
2、numpy数值计算
numpy数据计算主要应用是在数据挖掘,对于以后的机器学习,深度学习,这也是一个必须掌握的库,我们要掌握以下内容:
Numpy array理解;
数组索引操作;
数组计算;
Broadcasting(线性代数里面的知识)
3、数据可视化-matplotlib与seaborn
Matplotib语法
python最基本的可视化工具就是matplotlib。咋一看Matplotlib与matlib有点像,要搞清楚二者的关系是什么,这样学习起来才会比较轻松。
seaborn的使用
seaborn是一个非常漂亮的可视化工具。
pandas绘图功能
前面说过pandas是做数据分析的,但它也提供了一些绘图的API。
4、数据挖掘入门
这部分是最难也是最有意思的一部分,要掌握以下几个部分:
机器学习的定义
在这里跟数据挖掘先不做区别
代价函数的定义
Train/Test/Validate
Overfitting的定义与避免方法
5、数据挖掘算法
数据挖掘发展到现在,算法已经非常多,下面只需掌握最简单的,最核心的,最常用的算法:
最小二乘算法;
梯度下降;
向量化;
极大似然估计;
Logistic Regression;
Decision Tree;
RandomForesr;
XGBoost;
6、数据挖掘实战
通过机器学习里面最著名的库scikit-learn来进行模型的理解。
以上,就是为大家理清的大数据挖掘学习思路逻辑。可是,这还仅仅是开始,在通往数据挖掘师与数据科学家路上,还要学习文本处理与自然语言知识、Linux与Spark的知识、深度学习知识等等,我们要保持持续的兴趣来学习数据挖掘。
机器学习/深度学习(ML/DL)
(1)其中业务知识具体指的是个性化推荐,计算广告,搜索,互联网金融等;NLP,CV分别是处理文本,图像视频数据的领域技术,可以理解为是将非结构化数据提取转换成结构化数据;最后的ml/dl技术则是属于模型学习理论;
(2)在选择岗位时,各个公司都没有一套标准的称呼,但是所做的事情无非2个大方向,一种是主要钻研某个领域的技术,比如自然语言处理工程师,计算机视觉工程师,机器学习工程师等;一种是将各种领域技术应用到业务场景中去解决业务需求,比如数据挖掘工程师,推荐系统工程师等;具体的称呼不重要,重要的是平时的工作内容;
PS:在互联网行业,数据挖掘相关技术应用比较成功的主要是推荐以及计算广告领域,而其中涉及到的数据主要也是文本,所以NLP技术相对来讲比较重要,至于CV技术主要还是在人工智能领域(无人车,人脸识别等)应用较多,本人了解有限,相关的描述会较少;
3.根据之前的分析,也可以看到该岗位所需要的3种基本能力分别是业务经验,算法能力与工程能力;
入门
1.工程能力
(1)编程基础:需要掌握一大一小两门语言,大的指C++或者JAVA,小的指python或者shell脚本;需要掌握基本的数据库语言;
建议:MySQL + python + C++;语言只是一种工具,看看语法就好;
(2)开发平台:Linux;
建议:掌握常见的命令,掌握Linux下的源码编译原理;
(3)数据结构与算法分析基础:掌握常见的数据结构以及操作(线性表,队,列,字符串,树,图等),掌握常见的计算机算法(排序算法,查找算法,动态规划,递归等);
建议:多敲代码,多上OJ平台刷题;
(4)海量数据处理平台:hadoop(mr计算模型,java开发)或者spark(rdd计算模型,scala开发),重点推荐后者;
建议:主要是会使用,有精力的话可以看看源码了解集群调度机制之类的;
2.算法能力
(1)数学基础:概率论,数理统计,线性代数,随机过程,最优化理论
建议:这些是必须要了解的,即使没法做到基础扎实,起码也要掌握每门学科的理论体系,涉及到相应知识点时通过查阅资料可以做到无障碍理解;
(2)机器学习/深度学习:掌握常见的机器学习模型(线性回归,逻辑回归,SVM,感知机;决策树,随机森林,GBDT,XGBoost;贝叶斯,KNN,K-means,EM等);掌握常见的机器学习理论(过拟合问题,交叉验证问题,模型选择问题,模型融合问题等);掌握常见的深度学习模型(CNN,RNN等);
建议:这里的掌握指的是能够熟悉推导公式并能知道模型的适用场景;
(3)自然语言处理:掌握常见的方法(tf-idf,word2vec,LDA);
3.业务经验
(1)了解推荐以及计算广告相关知识;
(2)通过参加数据挖掘竞赛熟悉相关业务场景,常见的比赛有Kaggle,阿里天池,datacastle等;
PS:以上都是一些入门级别的介绍,在长期的学习中,应该多看顶会paper,多读开源代码,多学习优秀解决方案;