数据科学作为一个专业领域迅速崛起,吸引了来自各种职业背景的人。工程师、计算机科学家、市场和金融毕业生、分析师、人力资源人员——每个人都想尝一块 “数据科学馅饼”。
Analytics Vidhya (一个专门针对“分析与数据科学”的社区网站 ) 发布了一篇文章《为初学者迈入数据科学规划的全面学习路径》。
A comprehensive Learning path to become a data scientist in 2019
https://courses.analyticsvidhya.com/courses/a-comprehensive-learning-path-to-become-a-data-scientist-in-2019?utm_source=11stepsBItoDSarticle&utm_medium=blog
那么,为什么我要特别关注这些职业:数据分析/数据仓库(MIS)/商业智能(BI)呢?让我先解释一下。
我经常遇到一些优秀的商业智能分析师 (BI),寻求获得自己人生的第一个数据科学角色。但他们常常因缺乏机会而沮丧。他们中很多人感觉自己的角色是重复的,或者只需要扮演好被要求的角色。
他们实际上忽略了一个事实:比起任何其他职业的人,他们离数据科学更近。
商业智能分析师 (BI) 为何能更轻松地过渡到数据科学领域
商业智能专业人士比几乎所有试图过渡到数据科学的人都拥有巨大优势,原因如下:
商业智能分析师已经在各个项目中接触到了数据科学家;
知晓如何管理和处理数据(有时按比例);
有业务背景,他们密切地从事相关业务;
他们有基本的数据探索步骤的经验,因为除了用在报告中,业务部门也会经常要求这些。
换句话说,这些人工作在数据科学项目的“前半部分”,这已经比大多数有志成为数据科学家的人多了很多行业经验。
如果你正是这样一位希望从数据分析/数据仓库(MIS)/商业智能(BI)跳转到数据科学家,这篇文章就是为你量身定制的。你可以将这11步作为你能遵循的学习路径。实际上,我强烈建议你在当前的角色中执行这些步骤。开始于你正站着的地方,直到破雾而出,进入数据科学!我自己整理的一份最新的大数据进阶资料和高级开发教程,大数据学习群:522189307 欢迎进阶中和进想深入大数据的小伙伴加入。
在下面的内容中--—商业智能、数据仓库师、数据员、数据分析员都可以互换使用。这些角色和名称几乎没有区别,而且有很多重叠。
准备好和我一起踏上征程了吗?让我们一步一步地来。
第一步:进行探查分析并解读分析成果
让我以三个BI人员日常报告的例子开始。
示例 1:
该BI人员已经得到了数据结果,其中包含有关城市和地区级别的业务来源,以及业务质量的详细信息。
示例 2:
在这里,BI人员为“拒绝分数”列添加了RAG (红-琥珀色-绿) 分析。拒绝分数越低,业务质量越高。
示例 3:
在本例中,BI人员通过对分析结果进行解读,将报告提升到了另一个层次。你可以看到他从报告中得出的前2个发现。
这里我只举了一个简单的例子对报告进行解读分析。你可以根据正在分享的信息类型加入更多视觉效果/图表。
以上哪个示例对于业务用户更有意义?
看看上面的3个例子,我倾向于“示例3”,因为它为业务增加了更多价值:
为报告添加了更多可理解性;
它还强调了可着手的操作领域;
如果你查看那些“发现”,其中一个是区域级别汇总报告后得出的。
这些实际上能很大地帮助业务人员。当你与高层管理者合作时,你会发现他们中的大多数需要可着手操作的项目,而不想花时间在解释报告和深入分析上。
想要生成一份类似的报告,一位BI人员应该具有好奇心,关注细节,熟练掌握任何一种工具(Excel/SQL/QlikView/Tableau), 以及业务知识。
这个技能集不仅限于从事BI的人员。它对于成为一名好的数据科学专家也是关键。在大多数情况下,一名数据科学家60%—70%的工作是关于业务理解,数据探索和对手头问题产生见解。
与其它正在向数据科学过渡的人员相比,一位BI人士拥有巨大的优势。你可以从今天开始练习这个技能集,它也将帮助你在现在的工作中做得更好。这是双赢!
面临的挑战和解决方案:
无法在分析结果与业务之间建立联系:生成见解与你对业务的理解直接相关。我建议你与领域专家联系,并尝试解释它正如何影响着业务指标。
没有足够时间生成见解:我同意--—你正在紧张的最后期限下,忙着做业务报告,没有时间生成见解。这种情况下,我有2个建议:
不要开始一个有着非常严格时间表的报告(例如日报)。挑选有较少时间限制的报告任务。月报便是一个很好的开始,因为它们包含重要的信息并且为你深入挖掘信息提供了时间。
自动生成报告。这将为你节省大量时间,你可以利用这些时间来理解报告并生成见解。你应该学习 Excel/SAS 的宏指令或其它类似自动化报告工具。
第二步:学习统计学以支持你对于报告的见解
是时候用一些统计指标来支持你的见解了。不要把你自己局限在仅仅靠视觉解释来生成见解。看看下面的图--—你的第一反应是什么?
这个图上可以看到竞争前和竞争后的平均业务来源。现在的问题是“竞争是平均业务来源增长的背后推动力,还是只是一种随机增长?”这里,我们需要依靠某些统计概念来支持我们的见解,比如做 z-检测, t-检测或其它统计检验。掌握好统计知识将在这些处境中帮助到你。
你应该对以下统计主题有扎实的理解,如果你想进入数据科学角色的话:
描述性统计
平均数,中位数,众数
方差和标准差
概率
伯努利试验与概率质量函数
中心极限定理
正态分布
推论统计学
置信区间
假设检验
协方差/相关性
下面列出了一些有用的资源,可以帮助你开始学习这些主题:
关于推理统计的博客: Comprehensive & Practical Inferential Statistics Guide for data science
https://www.analyticsvidhya.com/blog/2017/01/comprehensive-practical-guide-inferential-statistics-data-science/?utm_source=11stepsBItoDSarticle&utm_medium=blog
假设检验的详细指南: Your Guide to Master Hypothesis Testing in Statistics
https://www.analyticsvidhya.com/blog/2015/09/hypothesis-testing-explained/?utm_source=11stepsBItoDSarticle&utm_medium=blog
全面易懂的方差分析教程: A Simple introduction to ANOVA
https://www.analyticsvidhya.com/blog/2015/09/hypothesis-testing-explained/?utm_source=11stepsBItoDSarticle&utm_medium=blog
面临的挑战和解决方案:
描述性统计很容易理解,但推理统计的茶不好喝:实践是关键。我建议尽可能地多练习,并对概念有一个直观的理解。在看数学方程前先做这件事。这种方法将帮助你首先关注于应用方面,而不是陷入理论的泥潭中。
这些看起来都太统计学了,我无法和股东或客户分享:查看这些报告的客户大致有两类。第一类对直观的见解更感兴趣,而另一类(风险/数据科学团队)则更关注统计见解。与后一类人联系,并就你的发现展开讨论。此外,这里最好的策略是用他们的语言讨论业务,而不是统计语言。例如,开始时我不会使用“统计显著”一词,听众可能会感到不舒服。我只会说,相比于我们从过去中看到的,这个事件是否有足够大的可能性发生。
第三步:把你的发现呈现给正确的小组
如果你没有和正确的小组分享你的发现,那探查分析和统计分析将不会帮助你进入数据科学的角色。
“讲故事是一名数据科学专家必须掌握的关键技能。”
这里,我强烈建议在你现有的角色中练习“讲故事”的能力。你可以从以下内容开始:
始终在你的报告或分析中分享详细的见解;
分享你的见解并通过演示幻灯片展示你的故事。
这是一个我个人职业生涯非常受益的基本建议——在你的幻灯片中添加可视化效果。如果是报告或会议演讲,则应该对应你的可视化添加背景。困惑吗?让我用一个例子来解释一下。
看看下面的可视化。它展示了关于Sachin Tendulkar职业生涯中测试赛的细节。你可以在这里使用图表和数字讨论各种度量。这也展示了为何业务理解如此重要——如果你没有业务经验的话,你根本无法讨论这些指标。
你该看看下面这篇优秀的文章:
The Art of Story Telling in Data Science and how to create data stories
https://www.analyticsvidhya.com/blog/2017/10/art-story-telling-data-science/?utm_source=11stepsBItoDSarticle&utm_medium=blog
面临的挑战和解决方案:
不能向小组传达统计见解:不要总使用单一语言(统计语言)进行沟通。我们应当根据听众来改变我们沟通的方式。例如,你正和一个统计小组沟通,那话语中有很多统计推断没问题。如果你与一个非技术团队沟通,统计和直观结合的方式将更有帮助。
以前从未分享过见解,怎么开始?你可能有过这样的想法:
这些见解对于业务来说有意义吗?
我可能误解了这些数字。这将导致沟通不良并产生负面影响。
你的担心是可理解的,但你不得不从某个地方开始积累经验。我的建议是首先和你的经理、有经验的同事或你的客户分享见解。这将给你信心——这是非常重要的推动力。所以开始练习吧!
第四步:探索一个开源工具来生成报告或执行检测分析
到目前为止,我还没有讨论任何生成报告和见解的工具。我特意回避了这样的问题,例,你该选择哪样工具?哪个是合适的或更好的?这是因为我的目标是让你的关注点聚焦于检测分析、统计概念和磨练你的沟通技巧,这样你可以用你现在工作中的工具来展现你的新发现。
现在,是时候来学习一种工具了,它具有以下特点:
处理(大量)数据的能力;
可视化能力;
建立预测模型的能力(机器学习模型);
深度学习支持;
客户服务支持和繁荣的社区。
你可以在 SAS/R/Python中任意选择,因为这些工具都有以上功能。在这里,你的初始任务是非常具体的,在学习一个新工具的同时,让你自己习惯执行数据探索、可视化、检测分析和统计测试。你不需要在这些工具上拥有完整的专业知识(不管怎样,开始时不需要)
如果不确定挑哪样工具,我建议你读读 Kunal Jain 写的这篇文章,里面比较了三种工具的各种优缺点。
Python vs. R (vs. SAS) – which tool should I learn?
https://www.analyticsvidhya.com/blog/2017/09/sas-vs-vs-python-tool-learn/?utm_source=11stepsBItoDSarticle&utm_medium=blog
你可以查看以下使用 SAS/R/Python 学习数据探索的教程:
Data Exploration using Numpy, Pandas, Matplotlib
https://www.analyticsvidhya.com/blog/2015/04/comprehensive-guide-data-exploration-sas-using-python-numpy-scipy-matplotlib-pandas/?utm_source=11stepsBItoDSarticle&utm_medium=blog
A comprehensive guide for data Exploration using R
https://www.analyticsvidhya.com/blog/2015/04/comprehensive-guide-data-exploration-r/?utm_source=11stepsBItoDSarticle&utm_medium=blog
Data Exploration using Data Step and Proc SQL
https://www.analyticsvidhya.com/blog/2015/04/data-exploration-sas-data-step-proc-sql/?utm_source=11stepsBItoDSarticle&utm_medium=blog
9 Popular ways to perform visualization using Python
https://www.analyticsvidhya.com/blog/2015/05/data-visualization-python/?utm_source=11stepsBItoDSarticle&utm_medium=blog
Data Visualization using SAS
https://www.analyticsvidhya.com/blog/2015/06/data-visualization-guide-sas/?utm_source=11stepsBItoDSarticle&utm_medium=blog
Comprehensive Guide to Data Visualization in R
https://www.analyticsvidhya.com/blog/2015/07/guide-data-visualization-r/?utm_source=11stepsBItoDSarticle&utm_medium=blog
面临的挑战和解决方案:
没有编程经验:记住,你无需成为该工具的专家。重点是你该用一个新工具来执行相同的练习(如探索,可视化或统计检验)。你将通过练习掌握这些技能和工具。
当前的数据科学团队在SAS上工作,我该转移到Python/R上吗?我建议只从SAS开始。始终选择当前组织中的数据科学团队正在使用的工具。这将有助于你向数据科学过渡。
第五步:了解建模/预测建模的步骤
现在终于到了数据科学最吸引人的部分——建模!在你投身于研究具体模型前,我建议你首先理解存在的问题类型。这里有一篇文章解释了预测建模/机器学习的基础知识。
Machine Learning basics for a newbie
https://www.analyticsvidhya.com/blog/2015/06/machine-learning-basics/?utm_source=11stepsBItoDSarticle&utm_medium=blog
大体上,我们可以将建模过程分为5步:
定义问题
生成假设
探索数据
模型建立
模型评估和验证
我将前两步放到后面讲(定义问题和生成假设)。这里我们先讨论探索数据。
探索分析的步骤类似于检测分析,这里我们的主要目标是理解每个变量的行为和它们互相的关系。良好的统计知识将对你有很大帮助。这一步的终点是生成见解和数据清洗。你可能需要输入丢失值,检测和处理异常值和执行多种类型的转换。
我写了一篇文章《关于数据探索步骤的综合指南》,你可以练习所有这些方法,从你的行业中选一个数据集,或使用任何开放数据库。
Comprehensive Guide on the Steps Involved in Data Exploration
https://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/?utm_source=11stepsBItoDSarticle&utm_medium=blog
面临的挑战和解决方案:
它是如何区分于检测分析的:它与检测分析类似,添加了数据清洗和转换步骤。这里,你的重点应该是进行数据探索以实现特定目标,例如判断“给定变量”是否会对目标变量产生影响。
在没有首先陈述问题时,我将如何建立和目标变量的关系?你可以使用定义了问题语句的任何开放数据集,并开始练习你的数据探索技能。
第六步:评估模型性能的方法
在模型构建的过程中,我们在一个预先知道了目标的数据集上训练模型,然后将其应用到测试数据集上,以预测目标变量。我们显然希望在预测目标变量时足够准确。
如何检查模型是否准确?我们需要一个能根据实际观察结果去评估模型结果方法。让我们用一个例子来理解这一点:
我们有一个客户群,C1、C2和C3。我们估计只有C3会购买产品A。然而事实证明,C2和C3都买了这件商品。这意味着我们的准确率是 66.6%。这个准确率就被称为“评估指标”。
评估指标将根据你正在解决的问题类型而不同。这里有一个你该知道的,常用评估指标清单:
Evaluation Metrics
https://www.analyticsvidhya.com/blog/2016/02/7-important-model-evaluation-error-metrics/?utm_source=11stepsBItoDSarticle&utm_medium=blog
现在你已经决定了评估指标的方法,但你有“实际结果”来评估你的模型吗?你不能跳到未来去准备一个测试数据集!在这种情况下,我们保留了数据集的一个特定样本,该样本集不用来训练模型。稍后我们用这个样本集来评估模型。这种方法称为模型验证。你可以参考下面这篇文章,其中包括在R和Python中的实例。
Various Validation Techniques
https://www.analyticsvidhya.com/blog/2018/05/improve-model-performance-cross-validation-in-python-r/?utm_source=11stepsBItoDSarticle&utm_medium=blog
面临的挑战和解决方案:
有必要知道所有的评估指标吗?不一定。目前,只关注两个评估指标—“RMSE” 和“混淆矩阵”。这两个对于起步已经足够了。你可以使用RMSE应对回归问题,用混淆矩阵来应对分类问题。
第七步:用线性回归和逻辑回归介绍预测建模
你已经了解了数据集并查看了评估模型性能的指标。下一步是什么?
应用建模技术!不要同时学习各种技术。现在只关注两个:
线性回归
逻辑回归
这两个技术将帮助你预测连续变量和分类变量。
例如:
线性回归将帮助你预测下个季度保险公司销售代理的预期业绩。
逻辑回归将帮助你了解交叉销售产品给特定客户的可能性。
以下2篇文章可以帮助你学习线性回归,逻辑回归和练习使用你选择的工具:
Beginner Guide for Linear, Ridge and Lasso Regression
https://www.analyticsvidhya.com/blog/2017/06/a-comprehensive-guide-for-linear-ridge-and-lasso-regression/?utm_source=11stepsBItoDSarticle&utm_medium=blog
Introduction to Logistic Regression
https://www.analyticsvidhya.com/blog/2015/11/beginners-guide-on-logistic-regression-in-r/?utm_source=11stepsBItoDSarticle&utm_medium=blog
面临的挑战和解决方案:
算法太数学化,难以理解:首先你要对这些技术建立一个直观的理解,然后再深入到数学细节。这里我建议采用自上而下的方法,更多地关注实际方面。你必须能够解释模型结果(例如了解该模型是否运行良好)
第八步:确定业务问题(与你的角色相关)将其转换为数据问题并进行预测
那么,哪里可以找到你所在领域的数据集呢?找到一个商业问题可能很困难。
你应该与领导层或团队经理交谈,并将他们的业务挑战之一作为你的项目。这里,第一步是将业务问题转换成数据问题。然后,开始顺着以下步骤前进(我们在前面第5点中讨论过)——生成假设,收集数据,探索数据,数据清理,模型构建和验证。
作为一名BI专业人员,你具有的优势之一是你已经熟悉数据集中的变量。你的检测分析技能将帮助你理解变量间的关系。你可以跳转到数据清理、转换、确定正确的评估度量、设置验证集以及最终构建模型等任务。
你该花点时间观看Tavish Srivastava里的网络研讨会,了解定义问题和假设生成的重要性。
Tavish Srivastava网络研讨会
https://youtu.be/zOv0vjlTjro
我还建议你阅读下面的文章,关于在R和Python中构建模型:
A comprehensive guide to build machine learning models from scratch
https://www.analyticsvidhya.com/blog/2016/01/complete-tutorial-learn-data-science-python-scratch-2/?utm_source=11stepsBItoDSarticle&utm_medium=blog
Build a Machine Learning Model in 10 minutes using R
https://www.analyticsvidhya.com/blog/2015/09/perfect-build-predictive-model-10-minutes/?utm_source=11stepsBItoDSarticle&utm_medium=blog
Build a Machine Learning Model in 10 minutes using Python
https://www.analyticsvidhya.com/blog/2015/09/build-predictive-model-10-minutes-python/?utm_source=11stepsBItoDSarticle&utm_medium=blog
面临的挑战和解决方案:
无法找到业务问题:你可能遭遇这样的处境,你无法获得业务问题或不能说服业务/团队经理了解你的技能集。如果这正是你目前的处境,那么你可以试试这些方法:
以你自己的能力开始构建模型,以获得更为明确的问题陈述:假设你要分析保险代理逐月的业务来源。你可以在制作分析报告时考虑预测代理们下个月的表现。你可以基于过去已有的人口统计或业绩表现数据。一个月后你再来验证你的结果,检查你的预测有多好。
参加开放的数据科学竞赛,提高自己的形象:参加数据科学竞赛是一个极好学习数据科学的方式,这将提高你的知识和形象,以及了解你相对于世界*科学家所处的位置。
第九步:与企业主分享你的模型结果,获得他们的信任
在构建模型后,你应该与你的主管或决策者共享结果(如团队或项目经理)。作为一名数据科学专家,分享你的发现是非常重要的(比如哪些特征会对目标变量产生影响)。你还应该围绕模型结果和实际数字之间的比较进行定期更新。
这个过程将也会帮助你调整和改进你的模型。如果模型运行良好,那么你很有可能获得另外一个任务或参与到核心的数据科学团队中的机会。这也正是我们的目标,不是吗?
面临的挑战和解决方案:
我的模型表现不好,那我该怎么办呢?没关系的。你可以进一步研究数据集和寻找问题。可以关注不同的算法,它可能更适合你正在解决的问题。
第十步:不断学习新算法,参加数据科学社团,专注构建个人档案
在数据科学领域,学习永无止境。这是一个不断发展的领域,我们需要同它一起不断进化。至此你已经学习了线性回归和逻辑回归,是时候扩展你的知识,超越自己了。学习决策树,随机森林,甚至神经网络等算法。
就像我之前提到过的,你应该在实践中学习。拥有算法知识固然很好,但除非你能把它应用于实践中。捡回我们之前用过的数据集,并应用这些新算法。你很可能将看到你的模型有了巨大的改善。
现在,让我们在工具和技术之外更进一步。我想强调在数据科学社区构建你的社交网络和个人资料的重要性。
开始参加以数据科学为中心的会议。你将遇到志趣相投的人,还有可以给你指导的经验丰富的专家。我看到过很多有抱负的数据科学人员通过这些活动获得了工作机会,所以我可以担保这确实有用!
你应该关注个人资料的数字化方面。既然你一直在与数据科学项目合作,那就向社区展示你的工作!将代码上传到Gitthub上并开始发布关于你的发现的博客/文章。这将有助于你未来的雇主看到,你对某些项目有着很好的理解。
面临的挑战和解决方案:
我不能决定我该研究哪种算法:这是一个经典问题。曾让很多有志的数据科学家感到困惑。我的建议是研究你现在的组织中使用的算法。这使你的目光聚焦在你们的数据科学团队需要的东西上。之前我们提到过组织内部转型,还记得吗?这是一个很好向已有的数据科学团队展示你的价值的方法。
我不知道从哪里找到小组或加入哪里组织?由于数据科学的蓬勃发展,有很多相关会议。如果你无法在你所在的城市找到,那你可以自己主办一次。我看到过很多人主动在Linkedin和meetup.com上发布聚会详细信息,并要求加入他们的社交网络。你会对出现的人感到惊讶。
第十一步:在你的组织中专注地向数据科学角色过渡
虽然并没有简单的方法过渡到数据科学,但还是有确定的、常有人走的路径。其中之一是从你现在的组织中切换到数据科学团队。让我解释一下为什么你该关注这种方式而不是其他路径(至少对于初学者来说):
你已经知道该领域是如何运作的。面对数据集中的某些变量,你非常擅长处理它们,因为你具有所需的业务知识。
你的领导和团队经理已经熟悉你的表现和职业道德。他们知道你带来了什么——信任是任何一个团队中的重要因素,尤其是数据科学团队。这将对你有利。
无需花时间在组织外寻找工作机会。每个人都恐惧在招聘门户上看着时间溜走而无法指望能找到一份体面的工作。
这可能不适用于所有人,但当你切换组织时,你可能无法指望大幅的工资增长。记住,你是要过渡到你经验有限的部门。
你只要记住这一点,总是在你现在的公司中寻找机会。与高层或数据科学团队交谈。建立你的社交网络,相信我,它最终会有回报的。
面临的挑战和解决方案:
无法在目前的组织中找到机会:如果这种情况发生了,你应该撒一张大网。正如我们前面步骤中讨论的,你的Linkedin网络和数据科学社区将派上用场。不要坚持用在线求职门户被动求职——通过Lindedin和其它专业网络联系招聘经理。线上展示你的项目。别放弃!这将考验你的耐心,但第一次的突破值得你所付出的所有努力。
结束语
这是一段令人兴奋的旅程。我已经在几年前经历过了这样的过渡。我看到这个领域随着时间推移而发展,本文的目的是帮助你实现转变。你目前已经完成了很多其它向数据科学过渡的人没有完成的步骤。记住这一点。