全文共7984字,预计学习时长23分钟
图源:Unsplash
经过漫长的十多年的甚至二十年的学习,也许你学到的也只是冰山一角,九牛一毛。
学习永无止境,
为了“成为数据科学家”的理想,不少小伙伴会选择参加线上或者线下、民营或者官方的数据科学训练营。
这真的有用吗?真的能学习到所有数据科学家必备的东西吗?
小芯认识的一位专家无奈的耸耸肩,表示有很多东西你是无法在数据科学训练营学习到的。
这位专家之前在联合国大会数据科学沉浸式训练营任讲师,教会了一千多名学生如何用数据解决问题,并有幸刚入职就编写和组织了学校的大部分课程。
他郑重向我们说明,他不赞同目前任何的数据科学训练营或教育计划。然而,对于那些参加过数据科学训练营,想知道下一步该学什么的人(或者有抱负的数据科学家),他也有一些建议。
大家一起来听听吧~
为什么组织训练营?
图源:Unsplash
加州大学伯克利分校的信息与数据科学硕士(Master of Information and Data Science)学位就是一个很受欢迎的大学项目。要获得加州大学伯克利分校的数据科学硕士学位,需要超过6万美元的学费,同时还需微积分、线性代数等相关定量领域的学士学位论文,以及本科基础工科课程成绩至少为“良好”。
这反映了大多数的大学课程的现状。如果自学,或者没有更正式的数学、统计学和工程学背景,大学就没那么容易上。
事实上,如果想继续攻读这一专业,在资金方面可以有更好的选择(如佐治亚理工学院的在线分析学理学硕士,Online Master of Science in Analytics)。
数据科学训练营通常有两种形式:
· 非全日制:10–12周@ ~6小时 / 每周晚
· 全日制:10–12周@ 40小时 / 每周早9点–晚17点
未来的学生花钱参加训练营,有时甚至受到强烈的暗示,即一个人可以通过短时间的集中学习成为一名数据科学专家。
无论是花在非全日制课程上的2-6千美元或全日制课程上的1万6千多美元,同时还要投入相当多的时间和资源,无论哪种情况,都不及全日制硕士课程上的投入。此外,许多数据科学训练营提供资金,因此参加训练营的先决条件较少;当权衡这样一个机会的成本效益时,这些都是令人信服的理由。
另一方面,数据科学训练营的先决条件不算严格,这既有利,但也保证潜在同学间知识和能力的差异。根据学校的不同,训练营主要提供某种形式的评估,衡量的是必备知识和数学、统计学以及基本的Python或R基础知识的能力。评估的结果很有权威性,能够列出需要学习的特定科目的资料和简短形式的课程。这一招生过程引导学生进入特定的学习领域。与传统的大学课程形成鲜明对比的是,训练营招生过程允许学员根据自己的评估针对某一主题进行学习,为第一天的课做准备。
归根结底,训练营是一所私立盈利性学校,主要目的是吸引学员。
通常,没有完成前期准备的学生,在意识到课程的进度和广度比他们预期的要紧张时,他们会在两周后退出训练营,要求退款。
在笔者看来,课程的节奏就像用消防水龙头喝水一样。然而,课程很简单,重点是实践应用。一个接一个的概念很快就相互堆叠起来。然而,几乎没有可以放慢或错过任何课程的空间。
图源:Unsplash
未来的学生最常问的问题是,在12周的紧张课程之后,他们是否真的可以走上分析师或数据科学家的职业道路。
笔者想说是的,这要看该学员以前的背景。没有编程、统计、数学或机器学习经验,毕业后的简历上只有一个数据科学项目,没有任何其他与数据科学相关的内容,那么走上这条职业道路将会很困难。
完成训练营后立马找到一份工作并不是不可能,我看到学生们在充满挑战的就业市场中用了各种各样的方法,大多数都成功了。有的成为了数据科学家,有的成了数据工程师,有的成了分析师,还有的从事其他数据科学工作。
班里都有什么人?
同学可能是计量金融分析师、生物学家、精算师、前高中数学教师、风险资本家、会计师、工程师,或任何与工程或数据无关的人。这些学生中,大多数要么有高等学位,要么有应用工程背景,还有两者都不符合的学生。
作为一名讲师,最难解决的问题之一是向具有统计、数学和工程等能力的学生讲授课程。尽管笔者确实认为学生的知识和编程能力的总体平均水平在一定程度上影响了教学质量,如果想要成长,这也是向懂得更多的同学学习的绝佳机会。
由于每一个班级都包含了不同背景、信仰和能力的人,每个人都面临着不同的挑战。一般说来,学生要么更容易掌握理论概念,要么更容易掌握编程方面的知识。有些没有任何背景的学生学得很困难,但笔者更愿意相信,这些学生接受了走向未知的学习原则,因此可以不错地完成这一学习项目。
一般来说,有数学背景的学生能帮助更多有工程头脑的学生,反之亦然。在训练营中,每个人都有一段共同的经历,那就是弄不清一两个概念。困扰每个人的概念都是不同的。
数据科学训练营课程的最初几周内将会学习这些概念
刚学过线性回归?
很好,现在来学习线性回归的一系列正则化形式,共线性如何影响模型的质量,以及刚学的建模中所包含的偏差-方差平衡的影响。笔者刚才提到的这些概念在传统学校中要学习几个月或几年,但如果学生在训练营的课堂上认真学习,大约一周内就能掌握一切的“要旨”。
你将学到什么?
你将学到经典机器学习算法,以及基本了解如何实现这些算法。如果参加了非全日制课程,将学到以下知识:
· 导入库
· 用数据帧清理和变换数据
· 训练和评估模型
· 使用数据集(最基础的)
你还将学到在最基本的机器学习应用程序的工作,包括:
· 监督式学习和无监督学习
· 回归
· 分类
· 自然语言处理贝叶斯公式
· 时间序列
· 神经网络
· “某些”大数据工具集的“注意要点”
全日制“沉浸式”课程与非全日制课程的最大区别是从头开始编写更多的机器学习模型、更多的实践项目、更多的讲座、以及更多的练习。根据每小时的成本来计算,全日制课程价值更高,特别是因为可以要求教师提供一对一辅导的时间,并可能根据学校的情况提供就业安置(结果)支持。
会学到怎样实现机器学习吗?
是的。会学习如何更好地写代码吗?是的。能理解足够有用的统计数据吗?很有可能。能学到足够的知识来继续自学并跟上前沿发展吗?肯定能。这也将是学员一生中最艰难但最有价值的教育经历之一。这只是众多途径中的一种,取决于学员对压力和成长的承受能力和上大学节省成本的选择两者的比较衡量。
Salary.com 2019年九月旧金山湾区数据科学家工资的报告
能学到如何面试成功吗?
不太可能,因为大多数课程在此方面不够严格。在12周结束后,现实生活中的数据科学专业的薪水与训练营出身的求职者之间的差距将会小得多,但关键因素可能不仅仅是掌握了足够的统计学、数学或机器学习知识。
依笔者看来,学员的编码水平还必须相当于一个中级工程师,但如果有充足的专注力和准备,这是可以实现的。相信大多数学生在参加了数据科学训练营后都获得了数据科学的职位。尽管如此,在第一天上课之前,学员必须付出努力。
笔者对这类课程最中肯的评价是,注意所学的课程与需要做的事之间的差距,这样才能成功求职。训练营教学员如何使用数据科学流程,但把更多的重点放在指导如何进行适当的机器学习实验上。
数据科学不仅仅是掌握机器学习。数据科学就业市场对自身的定义仍在持续,但在目前它存在的角色和市场期望已经更加清楚。企业正在招聘的人不仅要擅长工程,统计学和机器学习,还要能够与非技术经理进行接洽,同时迎合业务需求。
你学不到的
关于现实中的数据科学是多么有趣和令人兴奋,说都说不完。例如,scikit-learn或R Studio中都提供很多很酷的工具来进行模型评估,这些课堂上都不会讲到。读者可能会认为,学了12周的数据科学都和建模有关,但说实话,数据科学家不会花一整天训练模型,除非是在研究。建模占大多数项目范围的10%-20%,其他是观察数据,清理数据,并提出问题,从一组模糊假设中给出定义。
学习的越多,机器学习只会变得更有趣,但这最初并不是数据科学领域的大部分工作,除非该职位是专门研究。几乎所有的数据科学训练营课程都存在明显的盲点,因为数据科学不仅仅涉及建模。
1. 如何界定体现业务影响的项目的范围
图源:Unsplash
甄别数据科学家面试者的最重要的能力是能够清楚地确定存在大量歧义的问题,同时联系实际业务价值来解释最终结果。数据科学是一个过程。它必须在每一步都证明方法的正确性,并宣传它在现实世界中的存在,这包括训练模型和优化超参数,但也包括如何检查数据和从中提出正确的问题。
在参加了为期12周的数据科学课程后,大多数学生认为建模是项目中最关键的一步。在现实世界中,必须证明数据和模型如何协同工作,以可测量的方式解决问题。应把大部分时间花在观察数据、清理数据和衡量具体的项目影响上,而不仅仅是完善机器学习模型。
诚然,并不是每个人都能将最新的集成方法或神经网络用于分类,并通过附带解释模型性能权衡的图表来验证准确度达到了80%。企业应该如何处理这些信息?如果进行分类,误报会带来什么样的风险?诚然,以业务价值为中心来定义数据科学问题并不容易,但考虑到可能出现错误和偏差,必须证明自己的工作是正确的,并准确地报告存在的风险。
要从技术上界定一个问题,同时要和潜在的业务影响联系起来,这不是在12周内就能学会的。有可能在12周的时间里没有太多关于非技术价值内容的交流。
到目前为止,创新性地界定问题是新数据科学家最难学的技能。训练营在这方面的训练并不是很完善。不过,可以自己选择最终的项目,重点是明确界定项目,并附加检验成果的标准,同时考虑业绩。用数据来说话,证明其中的重要性。
企业迫切需要能够深入彻底思考问题的数据科学家。企业希望有人能够解释最终的成果,证明模型选择的合理性,向非技术人员报告客观事实,同时肯定自己工作是好的,但坏数据会影响工作。要想做到这一点,唯一的方法就是提出正确的问题,倾听关键利益相关者的意见,并向导师和更有经验的团队成员寻求帮助。
获取经验可能是摆脱不了的,例如“我如何获得界定问题的经验?”笔者的建议是做更多的项目,明确提出一个问题,设置关键的衡量指标,评估影响,预测可能发生的情况和给出下一步的行动建议。向别人寻求帮助。借鉴更有经验的人的智慧。
推荐阅读
· 《数据科学生命周期入门》,作者为Sangeet Moy Das。Sangeet提出的第一点是理解如何开始界定问题。其中“1.商业理解”的出发点很不错。与其同名的部分“8.商业理解”及其之前的所有内容是一个很好的引入,表明了数据科学团队成员大局的重要性。
· 《数据科学流程:数据科学家的日常工作》,作者为Raj Bandyopadhyay。这绝对是一篇好文章,主要讲述如何应用数据科学流程,能够引起共鸣。笔者最喜欢的一段是:
销售副总裁走过,注意到你喜气洋洋,便问道:“有什么好事吗?”你说:“是的,我用逻辑回归建立的预测模型的TPR为95%,FPR为0.5%!”
她看着你,好像你冒出了几个多余的脑袋,用火星语在和她说话。
· 《解决新数据科学问题的5个步骤》作者为Matt Warcholinkski。Matt说:“问题应该是清楚的、简洁的和可衡量的。许多公司在确定数据问题时过于含糊。”笔者非常喜欢读这篇文章,非常同意Matt在这个问题上的观点。
2. 了解足够的结构化查询语言(SQL)以通过面试
结构化查询语言(SQL)是现代商业的标准交换格式。为了能够与任何级别的数据交互团队一起工作,迟早会向数据库中添加或取出数据。虽然不是人人都在自己的应用程序或业务的各个方面都采用关系数据库,但很可能会在一个编辑器中编写一个比两三页还多的SQL查询。大多数训练营都无法使学员掌握足够的SQL知识,从而顺利通过第一个面试。
需要熟悉以下SQL技能:
· 聚合和分组
· 添加限定符
· 基本的日期-时间功能
· 划分
· 窗函数
· 子查询
· 在给定ERD甚至简单的基于文本模式定义的情况下派生SQL联接
一些适合自学的SQL资料:
· 《SQL教程2》——十分不错,但更适合高级初学者或中级学者。
· 《Dataflair SQL教程》 ——这是一个非常棒的资源,提供了简单的示例。分别为:检查存储过程、索引、规范化和范式、限制以及上面提到的其他主题。在处理实际问题时,这些概念对于关系数据库系统的理解非常重要。
· 《基本SQL必学》 ——Kris Wenzel添加了大量视频资源以及SQL资料。
3. 处理“大数据”
现实中的数据混乱不堪,需要的数据总是有着各种各样的格式错误,而且体积极其庞大。笔记本电脑可装不下这么多。
大数据不仅关系到支持服务的基础结构和操作,也关系到工具。至少大多数科技公司都希望应聘者至少懂得如何在Google Cloud或AWS生态系统中工作,对任何一家拥有实际应用程序的公司来说也是如此,这种应用程序依靠现代基础设施支持的数据。
公司普遍期望新员工至少能够使用某种形式的大数据系统来为自己的试验进行数据采样。如今现代数据仓库系统十分普遍,如AWS的Redshift 和谷歌的Bigquery ,或者Apache的众多可靠的工具,如Hadoop、Spark或Hive。许多大数据系统在其数据管理生命周期中都有一个仓库组件,了解它们之间的关系非常重要。
“到目前为止,世界上90%的数据都是都是在过去的两年里产生的。”——Bernard Marr,《福布斯》2018版
如今,大数据生态系统的变化很大。尽管如此,几乎所有的训练营都没有涉及这一领域,很难让人有足够的信心独立处理好大数据问题。精妙的数据科学思想通常以可扩展的解决方案结束,这一般需要预先进行大量的ETL和数据清理。
说句公道话,大数据课程设置有很多障碍,有大数据背景的教师更少。也许并不是所有的训练营讲师或课程开发人员都是这样,但从笔者对排名前3-4的数据科学训练营的评估来看,大数据课程内容的深度和教授大数据的人才一样匮乏。
从事教育工作的工资比从事这个行业的工资低得多。专门研究大数据的数据科学高薪专业人员很少,这就可以解释为什么很难招到专业人才。
你能从网上学到的大数据知识
这个领域并不难学,至少主要概念都不难。但是学习下面的细节需要时间。需要学习的大部分内容应该注重这一点:大型基础设施结构和编程框架,是行业实现可拓展数据应用程序的方式。
下方第一个链接是一个很好的资源,可以让读者全面了解大数据。如果了解Python或Scala,Spark是一个值得学习的行业标准框架。Dask是一门新兴技术,如果熟悉Python,那么它提供的分布式数据帧对Pandas非常有用(Pandas的创始人是Dask的顾问)。
· 《大数据简介》,作者为Coursera,在更深的层次上对最基本的概念和工具有一个很好的概述。
· 《绝妙的Spark》,“一个精选的绝妙的Apache Spark包和资源列表”。
· 《Dask文档》,绝佳的Dask教程收藏集。
大数据的内容说也说不完,但这些都是好的起点。
4. 通用工程和软件开发生命周期管理
图源:Unsplash
虽然是老生常谈,但笔者发现一些学术圈真的讨厌将数据科学作为工程学的一个功能或是它的一个分支。一些最好的工程师是最好的数据科学家。在R和Python中使用的模型和绘图框架是软件。将模型部署到生产系统中以便能够预测付费应用程序中的数据,也是软件。
软件开发的实践包括协同变更控制、设计模式、渐近分析、单元测试、部署、工作流、设计。理应能够配置和管理自己的开发环境,然后在团队中有效地使用版本控制挂载代码。了解大多数公司采用的具有版本控制的常用分支策略是什么,以及如何和为什么使用这些策略,在大多数课程中甚至都没有涉及。
· 《git的四种分支工作流》作者为Patrick Porto本文很好地解释了各种类型的开发团队所采用的常用分支策略。
考虑模型选择和任何数据管理管道时的另一个重要方面是数据对应的时间和空间效率及处理方式。导入sklearn库后,很容易忘记模型在效率方面的权衡,这会造成不同范围间的差异。
例如,理论上看似简单的k-近邻分类器,在实际寻找测度距离时有很多复杂的优化。在课堂上,学员学到了邻域搜索的好方法,即O[DN²] (D =维数),但不理解为什么可以设置超参数,以产生类似于O[DNlog(N)]的替代搜索方法,但也明白了为什么随着维数和数据的大小增加,公式就越有效。学员不会学到为什么O(N) < O(log(N)) < O(N²) ,但是这对于评估模型和管道的权衡和功能来说十分重要。
上面提到的O指的是大O符号。William Fiset在YouTube上对这个话题有一段简短介绍:
· 大O符号简介
虽然要在实践中熟练掌握编程效率需要几个月的时间,但是如果有足够的自律性,也可以参加相关的课程或者自学。麻省理工学院的Eric Grimson教授的文章是笔者最喜欢的编程效率的系列文章。Eric的讲座引人入胜,浅显易懂。
推荐以下讲座:
· #10. 理解编程效率,第一章节
· #11. 理解编程效率,第二章节
· #12. 搜索与排序
5. ETL和工作流自动化工具集
数据仓库是大多数分析学和分析项目的主干。了解如何获取数据、如何在数据仓库的构造中进行通信是一项重要的技能
现实中的建模通常是一个简短但必不可少的一环。令人惊讶的是,训练模型并没有占用项目的大部分时间。如前所述,数据是复杂的,不是所期望的形式,也不是项目所需要的最新数据。有些与整体工程相关,但是抽取、转换和加载数据的过程会花费大量时间。
设计将数据格式变成一致,反过来又可以用于建模,这需要时间和好想法。ETL可能需要(但不限于)连接数据库表、合并不同格式数据、聚合、特征工程、或者简单地为实验抽取适当数量的数据作为样本。诚然,可以使用自己选择的语言(如Python)来完成大部分工作,但是考虑到现有的ETL框架和工作流管理工具中有大量可用的选项,设计数据集成管道最好是使用专门的库和服务来完成。
一些读者可能熟悉的,并且在行业中使用的流行工具集包括:
· Apache Airflow
· Apache Spark
· Apache Kafka
· Apache NiFi
· Pentaho Kettle
· Dask
· Pandas
· Luigi
怎样弥补不足的知识
幸运的是,我们生活在一个资源丰富的时代。许多学校也意识到了它们的缺点,并提供了更多的课程,比如高级SQL,甚至数据工程工作坊,所以如果发现自己在其中一个数据科学训练营中,就可以利用这些后续提供的课程。
YouTube也是一个学习大数据的平台。如果住在世界上任何一个大都市,Meetups都可以提供直接向业内知名人士学习的机会。通过帮助处理文档,利用机会向更有经验的发布者寻求帮助,主动提出在开源项目工作。学习的途径比以往任何时候都多。时不可待。
直到今天,笔者发现对处理数据的了解越多,就越觉得走这条职业道路是正确的决定,因为可以进行跨领域的不断学习。
任何人都可以找到数据科学的工作,只要抱有正确的心态。如果目标是成为一名可雇佣的数据科学家或其他相关职位,不要等待机会,要积极主动。
不要害怕失败或表现出自己的局限性。当从新的机会中学到新的知识时,学习是“差不多”和“不完全”的结果。谦逊一点;请求帮助;帮助别人。时不可待。
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)