为什么数据科学与软件开发不同?它从数据开始……很多数据!!
数据科学开发与软件开发完全不同,有时将两者结合起来就像是将Tinker Toys与Lincoln Logs拼凑在一起一样。 一位数据科学专家曾经将差异描述为:
软件开发是“衡量两次;切割一次”,而数据科学则是“切割,切割,切割!”
根据一个简单的观察,支持成功的软件开发的方法和过程不适用于数据科学项目: 软件开发以100%的保证知道预期结果,而数据科学–通过数据探索和假设测试,失败和学习–发现那些结果。
首先在博客“ BI Analyst和数据科学家之间的区别是什么?”中进行介绍,图1中的数据科学参与方法支持快速探索,快速测试和连续学习数据科学“科学方法[1] ”。
图 1: 数据科学开发方法论
如图1中突出显示的那样,数据科学开发在以下方面与软件开发不同:
必须有数据
协同假设发展过程
数据探索与发现的好奇心
掌握失败的艺术
了解何时“足够好”是“足够好”
接受持续学习/调整过程
让我们更详细地审查每个。
1)必须有数据…最好是大数据!
大数据是数据科学的动力,因为数据集越细化,多样化和完善,人工智能,深度学习和
机器学习的预测模型就越准确。
Gartner分析师Doug Laney于2001年提出了“大数据 的3 V ”概念。3V (体积,多样性和速度)是大数据的定义维度,其中体积指数据量,多样性指数据量。数据的类型和速度是指数据处理的速度。 随着可穿戴设备(Apple Watch,FitBit),物联网(传感器,连接的设备),照片,图像,视频,音频和语音的出现,大数据的持续增长势头不减。
但是,有价值的不是数据量。这是数据的粒度。 大数据的价值在于个人层面的见解,行为,趋势,倾向,关联和关系,无论是个人(学生,患者,医生,技术人员,工程师)还是个人设备(涡轮机,压缩机,冷却器,泵,开关,电机)。 无论是人类分析模型或行为模型,还是设备数字双胞胎,大数据的获利价值和可操作性都可以在单个实体的级别上找到。
2)协同假设发展过程
数据科学家开发方法论(图1)的第1步从数据科学家识别他们要测试的预测或假设开始。 这是与业务利益相关者合作以了解业务差异化的关键来源,然后集思广益讨论可能会产生更好业绩预测指标的数据和变量的结果。
数据科学开发方法论要求在整个开发过程中与业务利益相关者进行大量合作,以:
了解并量化财务,运营和客户价值创造的来源(这是经济方面的事情)。
集思广益可能会更好地预测业务和运营绩效的变量和指标(数据源)。
整理与假设相关的奖励/收益和成本/风险(包括与误报和误报相关的风险和成本)。
与业务涉众密切合作,以了解何时“足够好”实际上就是“足够好”。
为了促进业务利益相关者与数据科学的合作,我们创建了假设发展画布–我们在执行数据科学活动之前将其填充的模板,以确保我们全面了解我们要实现的目标,业务价值,我们如何我们将衡量进展和成功,与该假设相关的障碍和潜在风险(见图2)。
图 2: 假设发展画布
假设开发画布包括以下内容:
假设描述和目标–组织正在尝试预测的因素及其相关因素(例如,将计划外的运营停机时间减少X%,将客户保留率提高X%,将过时和过多的库存减少X%,改善按时交货X%)。
从财务,客户和运营角度假设业务价值;也就是说,成功解决该假设后,毛坯订单的投资回报率(ROI)是多少。
关键绩效指标,以衡量成功和进步,并与潜在的2个相关的风险勘探次和3次KPI的顺序后果。看到博客“错误的办法,意想不到的后果2个的更多细节”次和3次KPI的顺序后果。
为了支持和推动假设和商业目标,客户和运营目标,需要做出决定-什么,何时,何地,谁等。
有待探索的潜在数据源,包括简要说明以及业务利益相关者为何认为这可能是适合探索的数据源。
与误报和误报有关的风险(I型和II型错误);与分析模型错误的方案相关的风险。
愿景研讨会可加快业务利益相关者与数据科学团队之间的协作,以识别支撑数据科学参与成功的假设要求。
3)数据探索和发现的好奇心
成为一名成功的数据科学家的关键类似于成为一名出色的侦探-提出很多问题,提出很多主张,并进行大量探索和调查。 想想迪克·特雷西(Dick Tracy)(偏向行动),夏洛克·福尔摩斯(Sherlock Holmes)(精妙的构想)和哥伦布(Columbo)(不懈的探索)的结合! 一位优秀的数据科学家很快就了解到,除了挑战模型之外,成功的关键还在于不断挑战构成模型基础的假设。
数据科学家开发方法论的第2步(图1)是数据科学家从众多内部和外部来源收集相关和/或有趣的数据的地方。 数据湖是用于此数据收集,聚集和对齐过程的绝佳平台。数据科学家可以获取他们想要的任何数据,对其进行测试,根据假设确定其价值,然后决定是将该数据包括在预测模型中还是将其丢弃。
步骤3是数据科学家定义和构建解决正在测试的假设所必需的架构的地方。 数据科学家只有在知道要测试的假设并且知道将要使用哪些数据源(结构化,半结构化,非结构化,视频,图像)后才能定义架构。
数据科学家发展方法论的第4步利用数据可视化工具来探索数据,并发现隐藏在数据中的潜在相关性和异常值。 可视工具可以帮助识别隐藏在数据集中的相关性和关联性。
数据工程的作用(数据科学家族中未被充分重视的成员)在数据科学参与方法中起着至关重要的作用。 数据工程开发,构建和维护大型数据处理系统,该系统从各种结构化和非结构化数据源收集数据,将数据存储在横向扩展数据湖中,并准备数据以准备进行数据科学数据探索和分析建模。
请参阅博客“数据集成和数据工程之间有什么区别?” 详细了解数据工程师的重要作用。
4)掌握失败的艺术
“很难做出预测,尤其是对未来的预测。” – Yogi Berra
由于事先不知道确切的变量和度量标准(及其潜在的转换和扩展),因此数据科学开发过程必须采用一种支持快速测试,失败,学习,清洗和重复的方法。
这种态度反映在“数据科学家信条”:数据科学是关于识别这些变量和指标,可能是更好的性能预测; 整理数据中的关系和模式,以驱动优化的行动和自动化。
数据科学家开发方法论的第5步(图1)是真正的数据科学工作的开始-数据科学家使用TensorFlow,Caffe2,H20,Keras或SparkML之类的工具来构建分析模型-整理因果关系。这是真正的科学,宝贝!数据科学家将探索不同的分析技术和算法(数据挖掘,预测分析,有监督的机器学习,无监督的机器学习,神经网络,强化机器学习等),以尝试创建最具预测性的模型。
有关如何利用设计思维来学习如何接受失败作为更快学习的方式的见解,请参见博客“设计思维:
人工智能的未来发展”(参见图3)。
图 3: 掌握探索和学习失败的艺术
5)了解何时“足够好”是“足够好”
对于软件开发人员来说,数据科学开发最困难的方面也许是数据科学工作从未完成,因为工作中永远不会有100%的准确性。 数据科学工作没有干净的结束点。 实际上,分析模型会随着时间的流逝而衰减,并且由于变化的因素(包括行为和态度,人口统计学,天气模式,世界和当地经济状况,金属疲劳,零件磨损,新技术的发展,新数据)而需要不断进行调整。来源等
数据科学家将在数据科学过程的第6步中尝试确定模型的拟合优度。统计模型的拟合优度描述了该模型对一组观测值的拟合程度。 许多不同的分析技术将用于确定拟合优度,包括Kolmogorov–Smirnov检验,Pearson卡方检验,方差分析(ANOVA)和混淆(或误差)矩阵。
为了确定“足够好”是否真的“足够好”,需要花费时间来了解与误报和误报(I型和II型错误)相关的成本。 真正的挑战是确定分析模型对性能的改进是否“足够好”。 混淆矩阵可以帮助我们做出确定。
有关如何确定“足够好”是否足够好的更多见解,请参见博客“使用混淆矩阵量化错误的成本”。
6)接受持续学习/调整过程
由于在构建有效的可预测分析中“永远做不到”,因此必须定期监视和重新调整/重新训练分析模型的持续有效性。 世界在不断变化-经济状况,人口统计,技术创新,赢得世界大赛的小熊队-导致分析模型“过时”。 因此,需要有一个持续的过程来监视分析模型的有效性(随着时间的流逝,它会逐渐衰减),从而导致重新训练和重新调整分析模型。
为了支持分析模型的持续调整/重新训练,必须将敏捷软件开发过程与Analytics开发模块集成在一起(请参见图4)。
图 4: Analytics调整/再培训与敏捷软件开发的集成
概要
随着数据科学进入更多组织的主流,产品开发人员和业务利益相关者都需要了解开发和操作分析模型与开发和操作软件不同。 尽管他们共享许多相同的基本功能(例如,强大的团队协作,明确定义的角色,掌握版本控制,定期的交流节奏),但数据科学开发过程具有一些独特的要求,例如:
必须有数据
协同假设发展过程
数据探索与发现的好奇心
掌握失败的艺术
了解何时“足够好”是“足够好”
接受持续学习/调整过程
数据科学之旅充满未知数。 已知的未知数和未知的未知数将仅在数据科学团队随行而行时浮出水面。 就像原始电影《杰森和太空人》中一样,一支优秀的数据科学团队必须做好准备,以应对他们遇到的一切,并做出相应的调整。
[1]科学方法是自17世纪以来具有自然科学特色的程序,包括系统的观察,测量和实验,以及假设的表述,测试和修改。
1