数据科学是一个信息海洋——保持专注!
在本文中,我们将通过一系列步骤讨论我们的数据科学教学,以便任何有兴趣探索这门科学的产品经理或业务经理都能迈出成为数据科学家第一步,或者至少对其有更深入的理解。
如何成为数据科学家入门指南
我如何才能成为一名优秀的数据科学家?我应该学习R*还是Python*?或者两者都学?我需要获得博士学位吗?我需要学习大量的数学课程吗?我需要具备哪些软技能才能成功?项目管理经验呢?哪些技能是可以转移的?我在哪里开始?
数据科学是当今科技界的热门话题。它是驱动当今许多趋势的科学,从机器学习到人工智能。
在本文中,我们将通过一系列步骤讨论我们的数据科学教学,以便任何有兴趣探索这门科学的产品经理或业务经理都能迈出成为数据科学家第一步,或者至少对其有更深入的理解。
第一步:定义问题陈述
我们都听过这样的对话:“看看数据,告诉我你发现了什么。”这种方法在数据量小、结构化且有限时可能有效。但当我们处理千兆字节或太字节的数据时,这可能会导致一场无休止、令人生畏的侦探式搜寻,而由于一开始就没有问题,所以找不到答案。
科学的力量虽大,但并非魔法。任何科学领域的发明都是为了解决一个问题。同样,使用数据科学的第一步是定义一个问题陈述、一个要验证的假设或一个要回答的问题。它也可以侧重于要发现的趋势、要进行的估计、要进行的预测等等。
例如,以MyFitnessPal*为例,这是一个用于健康和健身监测的移动应用程序。我和我的几个朋友大约一年前下载了它,然后几乎每天都使用了一段时间。但在过去 6 个月里,我们大多数人都完全停止使用它了。如果我是MyFitnessPal的产品经理,我可能想解决的一个问题是:如何提高用户对该应用的参与度和留存率?
第二步:获取数据
当今的数据科学家从多个来源获取数据。这些数据可以是结构化的,也可以是非结构化的。我们经常获得的原始数据是非结构化和/或脏数据,在用于分析之前需要进行清理和结构化。现在大多数常见的数据源都提供连接器,可以将原始数据导入R或Python。
常见数据源包括:
- 数据库
- CSV文件
- 社交媒体动态,如Twitter、Facebook等(非结构化)
- JSON
- 网络爬虫数据(非结构化)
- 网站分析
- 物联网驱动的传感器数据
- Hadoop*
- Spark*
- 客户访谈数据
- Excel*分析
- 学术文献
- 政府研究文件和图书馆,如www.data.gov
- 金融数据;例如,来自Yahoo Finance*
在数据科学领域,常用词汇包括:
- 观测或样本。可以将其视为典型数据库中的水平数据库记录。
- 变量、信号、特征。这些相当于数据库世界中的字段或列。变量可以是定性的,也可以是定量的。
⇄ 观测或样本 | ⇄ 就像数据库中的行。 | ⇄ 例如:Joe Allen 的客户记录。 |
⇅ 变量、信号或特征 | ||
⇅ 就像列。 | ||
⇅ 例如:Joe 的身高。 |
第三步:数据清洗
有几个术语用于指代数据清洗,如数据整理、数据预处理、数据转换和数据加工。这些术语都指准备原始数据以用于数据分析的过程。
在数据科学分析中,多达 70-80% 的工作涉及数据清洗。数据科学家分析数据中的每个变量,以评估其是否值得作为模型中的一个特征。如果包含该变量能提高模型的预测能力,则将其视为模型的预测因子。然后,该变量被视为特征,所有特征共同构成模型的特征向量。此分析称为特征工程。
有时,变量需要进行清洗或转换才能用作模型中的特征。为此,我们编写脚本,也称为整理脚本。脚本可以执行一系列功能,例如:
- 重命名变量(有助于提高可读性和代码共享)
- 转换文本(如果“变量 = '大',则设置变量 = '巨大'”)
- 截断数据
- 创建新变量或转置数据(例如,给定出生日期,计算年龄)
- 用额外数据补充现有数据(例如,给定邮政编码,获取城市和州)
- 将离散数值变量转换为连续范围(例如:薪资到薪资范围;年龄到年龄范围)
- 日期和时间转换
- 将分类变量转换为多个二元变量。例如,区域的分类变量(可能的值为东、西、北、南)可以转换为四个二元变量:东、西、北、南,其中只有一个对一个观测值是真的。这种方法有助于在数据中创建更简单的连接。
有时数据中的数值大小差异很大,难以可视化信息。我们可以通过特征缩放来解决这个问题。例如,考虑房屋的平方英尺和房间数。如果我们通过使房屋的平方英尺与卧室数量具有相似的数量级来进行归一化,我们的分析就会更容易。
一系列脚本以迭代方式应用于数据,直到获得足够干净以进行分析的数据。为了获得持续的数据流以供分析,需要对新的原始数据重新运行一系列数据整理脚本。数据管道是应用于原始数据以使其准备好进行分析的这一系列处理步骤的术语。
第四步:数据分析和模型选择
现在我们有了干净的数据,可以进行分析了。我们的下一个目标是利用统计建模、可视化、探索性数据分析等来熟悉数据。
对于简单的问题,我们可以使用简单的统计分析,如均值、中位数、众数、最小值、最大值、平均值、范围、四分位数等。
监督学习
我们也可以使用监督学习,使用能够让我们访问给定特征变量(自变量)的响应变量(因变量)实际值的数据集。例如,我们可以根据已离职(辞职=真)的员工的任期、资历和职位来找出趋势,然后利用这些趋势来预测其他员工是否会辞职。或者,我们可以使用历史数据来关联访问者数量(自变量或预测因子)与产生的收入(因变量或响应变量)之间的趋势。然后,可以将此相关性用于根据访问者数量来预测网站未来的收入。
监督学习的关键要求是能够获得实际值和一个需要回答的清晰问题。例如:这位员工会离职吗?我们可以期待多少收入?数据科学家经常将此称为“现有数据的响应变量已标记。”
回归是监督学习常用的工具。单因子回归使用一个变量;多因子回归使用多个变量。
线性回归假设因子与响应变量之间的未知关系是线性关系 Y = a + bx,其中 b 是 x 的系数。
部分现有数据用作训练数据来计算此系数的值。数据科学家通常使用 60%、80% 甚至 90% 的数据进行训练。一旦为训练模型计算出系数的值,就会使用剩余的数据(也称为测试数据)对其进行测试,以预测响应变量的值。预测响应值与实际值之间的差异就是我们所称的测试误差度量的圣杯。
我们在数据科学建模中的目标是最小化测试误差度量,以提高模型的预测能力,方法是:
- 选择有效的因子变量
- 编写高效的数据整理脚本
- 选择合适的统计算法
- 选择所需的测试和训练数据量
无监督学习
当我们试图了解数据本身的底层结构时,就应用无监督学习。没有响应变量。数据集未标记,预先存在的洞察不明。我们事先不清楚任何事情,所以我们不试图预测任何事情!
这项技术对于探索性分析非常有效,可用于回答以下问题:
- 分组。我们有多少种客户细分?
- 异常检测。这正常吗?
方差分析 (ANOVA) 是一种比较两个或多个组均值的常用技术。之所以称为 ANOVA,是因为“方差估计”是计算的主要中间统计量。使用各种距离度量来比较各个组的均值,其中欧氏距离是一种流行的度量。
ANOVA 用于将观测值组织成相似的组,称为簇。观测值可以根据其各自的预测因子分类到这些簇中。
http://www.statsdirect.com/help/content/analysis_of_variance/anova.htm
两种常见的聚类应用是:
- 层次聚类。一种自下而上的方法。我们从单个观测值开始,将其与最接近的观测值合并。然后计算这些分组观测值的均值,并将均值最接近的组合并。重复此过程,直到形成更大的组。距离度量预先定义。该技术很复杂,不建议用于高维数据集。
层次方差分析
- K-均值聚类。使用分区方法。
- 我们根据直觉,预先假设数据有固定数量的簇。
- 我们还假设每个簇的起始中心。
- 然后,每个观测值都会被分配到均值最接近该观测值的簇。
- 重复此步骤,直到所有观测值都分配到某个簇。
- 现在,我们根据分配到簇的所有观测值的平均值重新计算簇的均值。
- 将观测值重新分类到这些新簇,并重复步骤 c、d 和 e,直到达到稳定状态。
如果未达到稳定状态,我们可能需要优化我们最初假设的簇数 (K),或使用不同的距离度量。
第五步:有效可视化和沟通
最终的簇可以使用 Tableau* 或图形库等工具进行可视化,以便于沟通。
数据科学从业者建议
在我探索数据科学的过程中,我采访了在 Facebook、eBay、LinkedIn、Uber 以及一些咨询公司工作的从业者,他们有效地利用了数据强大的力量。以下是一些我收到的重要建议:
- 了解你的数据。充分理解数据及其背后的假设非常重要。否则,数据可能会被无效地使用,这可能导致得出错误的答案、解决错误的问题,或者两者兼有。
- 理解领域和问题。数据科学家必须对业务领域和要解决的问题有深入的了解,才能从数据中提取有价值的见解。
- 道德。不要为了适应假设而牺牲数据质量。问题往往不在于无知,而在于我们的先入为主的观念!
- 数据量越大,获得的见解越好的说法是一种谬论。虽然增加的数据量在统计学上具有显著性,但大量数据也会带来更高的噪声。通常会发现,较大数据集的 R 平方值小于较小数据集。
- 虽然数据科学本身不是一个产品,但它可以驱动解决复杂问题的出色产品。有效沟通的产品经理和数据科学家可以成为强大的合作伙伴。
- 产品经理最初会带来要解决的业务问题、要回答的问题以及需要发现和/或定义的约束条件。
- 数据科学家凭借其在机器学习和数学方面的深厚专业知识,专注于业务问题的理论方面。现代数据集用于执行数据分析、转换、模型选择和验证,以建立将应用于业务问题的理论基础。
- 软件工程师负责将理论和解决方案付诸实践。他/她需要对机器学习的机制有深刻的理解(Hadoop 集群、数据存储硬件、编写生产代码等)。
- 学习一门编程语言。Python 最容易学习;R 被认为是最强大的。
常用的数据科学工具
R
R 是许多数据科学家的首选工具,在学术界占有特殊地位,在学术界,数据科学问题从数学家和统计学家的角度进行处理。R 是一种开源的丰富语言,拥有大约 9,000 个额外的可用包。用于在 R 中编程的工具称为 R Studio*。R 的学习曲线很陡峭,但它在企业界的份额正在稳步增长,其受欢迎程度部分归功于已经可用的丰富而强大的基于正则表达式的算法。
Python
Python 正在逐渐成为数据科学界使用最广泛的语言。与 R 一样,它也是一种开源语言,主要由软件工程师使用,他们将数据科学视为一种解决实际面向客户的业务问题的工具。Python 比 R 更容易学习,因为该语言强调可读性和生产力。它也更灵活、更简单。
SQL
SQL 是用于与数据库交互的基本语言,并且是所有工具所必需的。
其他工具
- Apache Spark 提供 Scala*
- MATLAB* 是学术界长期使用的数学环境。它提供了一个名为 Octave* 的开源版本。
- Java* 用于 Hadoop 环境
软技能怎么样?
以下是需要具备的重要软技能列表,其中许多技能您可能已经拥有。
- 沟通。数据科学家不是坐在隔间里编写 Python 程序。数据科学过程要求您与团队成员打成一片。您需要与高管、产品负责人、产品经理、开发人员、大数据工程师、NoSQL* 专家等建立联系并建立融洽的关系。您的目标是了解他们正在构建什么,以及数据科学和机器学习如何提供帮助。
- 指导。作为一名数据科学家,您的指导技能将大放异彩。您不是公司的个人贡献者;您是 CEO 的密友,可以帮助他/她根据数据科学塑造公司、产品和业务领域。例如,基于您的数据科学结果,您向执行团队提供分析结果,建议公司在巴西推出深绿色鞋子;而同样的产品在美国硅谷可能会失败。您的发现可以为公司节省数百万美元。
- 讲故事者。优秀的数据科学家是优秀的讲故事者。在您的数据科学项目中,您将拥有大量数据、大量理论和大量结果。有时您会感觉自己迷失在信息的海洋中。如果发生这种情况,请退后一步思考:我们想实现什么目标?例如,如果您的听众是 CEO 和 COO,他们可能需要在几分钟内根据您的演示文稿做出行政决定。他们不关心了解您的 ROC 曲线,也不关心查阅 4TB 的数据和您 3000 行的 Python 代码。
您的目标是根据您可靠的预测算法和准确的结果,直接向他们提出建议。我们建议您创建四到五张幻灯片,清晰地讲述这个故事——一个有坚实数据和扎实研究支持的故事。可视化。优秀的数据科学家需要使用可视化来传达结果和建议。您不能给别人一份 200 页的报告来阅读。您需要通过图片、图像、图表和图形来展示。
- 心态。优秀的数据科学家有一种“黑客”心态——这里的“黑客”是褒义的——并且不知疲倦地在数据集中寻找模式。
- 热爱你的数据。你需要和你的数据在一起,让它告诉你故事。当然,有很多工具可以帮助你更全面地理解数据,但仅仅粗略地看一眼就能获得大量信息。
我可以成为什么?
现在是决定的时候了。我应该成为哪种类型的数据科学家?
- 了解管道。你需要从某个地方开始。你可以成为一个在数据科学项目中工作的 Python 开发人员。你可以收集来自日志、传感器、CSV 文件等的输入数据。你可以编写脚本来消耗和摄取输入数据。数据可以是静止的或流动的。你可以决定成为一名大数据工程师,从事 Hadoop 或 Hive* 等技术。或者成为一名机器学习算法专家——一个掌握了技能并了解哪种算法在何种问题下最有效的人。你可以成为数学天才,玩转开箱即用的机器学习算法并根据自己的需求进行修改。你可能会成为一名数据持久化专家。你可能会使用 SQL 或 NoSQL 技术来持久化/服务数据。或者你可能会成为一名数据可视化专家,使用 Tableau 等工具构建仪表板和数据故事。所以,再看一遍上面的管道:从摄入到可视化。列出机会清单。例如,“D3 专家,Python 脚本专家,Spark 大师”等等。
- 查看就业市场。查看各种招聘门户网站,了解当前需求。有多少工作?哪些工作需求量最大?薪资结构如何?随意浏览旧金山湾区的数据科学工作,显示出充满希望的机会 ►
- 了解你自己。你已经探索了管道和你可能获得的工作类型。现在是时候思考你自己和你的技能了。你最喜欢什么,你有什么经验?你喜欢项目管理吗?数据库?回想一下你过去的成功故事。你喜欢编写复杂的脚本来关联和操作数据吗?你是可视化专家,擅长创建引人入胜的演示文稿吗?制作一份“喜欢做的清单”。例如,“喜欢编码,喜欢脚本,喜欢 Python。”
- 创造匹配。将你的机会清单与你喜欢做的清单匹配起来,并开始执行。数据科学是一个信息海洋。保持专注!!
注册以获取独家人工智能信息