在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

微软高级数据科学家教你如何做数据科学

  • 2016-04-08
  • 本文字数:2372 字

    阅读完需:约 8 分钟

  1. 学会获取更多的数据

数据科学的数据源是数字和字段的集合。测量、价格、日期、时间、产品、标题等,都是简单的数据集;你也可以用图像、音频、视频等复杂结构的数据集,这时需要你去降维分解成数字和字段的集合。
数据获取是一个复杂的机制,数据工程师各种被揉捏,但本篇文章重点是讲述数据科学,数据获取将会是下一个 topic。
2. 学会聪明的提出问题

简单点讲,就是提出的问题要问到点子上。数据科学是通过对数字和字段组成的数据集合进行处理,然后回答问题。你描述的问题越精确,越容易找到令你满意的精确答案。含糊不清的问法:“我的数据能为业务提供什么?”,”有了数据我该做什么?”;相对应地,清晰的问法:“第三季度在蒙特利尔卖了多少 Q 型小物件?”
你有了一个问题,现在你得看自己的数据是否可以回答。如果你的问题是“我的股票下周的销售价是多少?”,那需要确保你的数据包括股票的历史数据;如果你的问题是“88 型发动机多少小时会发生故障?”,那需要确保你的数据包括 88 型发动机失败的次数。这些问答案例被称之为目标,你的目标是定量或者分类预测或任务。如果你没有任何目标数据,需要回到步骤 1,获取更多的数据。
3. 装载数据进表

大部分机器学习算法都是假设数据以表的形式呈现。每行是一个事件、item、或者实体;每列是行数据的一个特征或者属性。一个描述美国足球比赛的数据集,每行代表一场比赛,每列分为主场足球队、客场足球队、主场得分、客场得分、日期、开始时间和出场等等。
选择你所需的数据行
经常有许多种方式将数据集分割成行,但只有一种方法能帮助你回答问题:每行有且仅有一个目标实体。拿零售店数据举例,一条交易记录一行,一天的记录一行,一个零售店一行,一个顾客的数据一行,等等。如果你的问题是”刚进过店的顾客会回访吗?“,那数据以一个顾客为一行来组织为好。你的目标 whether_the_customer_returned 将呈现在每行;但如果以一个零售店或者一天进行数据组织,将不能回答目标问题。
有时你必须向上钻取数据来获得相应的维度数据。如果你的问题是“我每天能卖多少拿铁咖啡?”,那你需要每行一天的数据记录(目标列为 number_of_lattes_sold),但是你的数据是每次的交易记录(带有日期和时间)。为了获取每行一天的数据记录,你必须向上钻取数据。
4. 数据质量校验

数据检查
接下来是仔细的查看数据。检查数据有两个目的:第一,发现错误数据,修复或者去除它;第二,对每行每列有足够的了解。
检查每列数据,它的符号是什么?符号意味着什么?有文档解释列的意思吗?数据是如何测试的?谁来测试的?如果你足够的幸运知道记录数据的人,可以去问问他们是怎样测试这些数据。
把数据列作为纵轴画图表,看下整体分布是否符合预期?是否有异常数据点?异常点是否有意义?
校正
纵观所有的数据列,你能发现字段和文档的错误,并记录下来你学到了什么,这样你会比其他人都要了解这些数据(除了纪录数据的人外)。
你也可能发现一些值是错误的。一些值超过了正常范围,比如,一个人 72 米高,或一个“7777777777 Mani St”的地址。当这些事情发生后你有三种选择:如果这个值很容易更改正确,比如,把高 72 米改成 72 英寸;如果错误的值不明显,你可以直接删除或者缺失;如果这个值是关键信息,你应该删除整行或者整列,这可以让你训练的模型远离错误数据,因为错误的数据对你的训练模型的影响比缺失数据更大。
替换缺失的值
在大部分情况下,数据集都存在缺失的值。但不管什么情况,机器学习算法都要希望数据无缺失或者填充默认值。对于你来说,你比机器学习算法更懂你的数据,所有补全缺失数据的工作你更适合。有许多替换缺失值的方法,最保险的一种是采用其它正常数据的平均值来替代。
5. 抽取特征

在做机器学习之前有一个非常重要的步骤:特征工程。特征工程简单讲,就是对现有特征数据进行组合,以获得更好的特征来预测目标。举个例子,火车到达和离开的时间相减获得运输时间,这个特征对预测速度的峰值更有用。
严格来讲,特征工程并不会增加任何数据信息,只是使用各种方法对原有数据进行组合。特征工程是数据科学的“黑科技”,并没有什么特别的、大一统的处理原则,虽然很多深度学习试图自动化这个过程,但都是失败了,特征工程一般是数据科学家的经验决定。不过即使你没有特征工程的技能,也有些小技巧可以使用。你可以对变量画图,并标记不同的颜色,可以帮你方便的发现变量之间的关系。
如果你发现经过特征工程之后还未找到特征来预测目标,那你得重写回到第一步获取数据。
6. 正确的回答问题

现在到了数据科学家钟爱的部分:机器学习,有许多资源讲这部分,这里就不再总结所有的方法。简单地讲,你可以在参考文章《你的问题属于哪种算法?》《选择一到多种算法》来选择算法,并用传统机器学习技术来分割数据进行训练、调优、测试数据、根据选择的模型优化参数。
如果你的模型并不能很好的解决问题,或者你想避免使用机器学习,也有两种非传统的方法回答:
第一种,简单的看你收集数据的图像,有一半的情况下可视化数据就可以找到答案。比如,如果你的问题是“在波士顿明年 7 月 4 号的最高温度是多少?”,对过去 100 年的温度可视化,查看直方图就基本可以解决问题。
第二种,更多技术需求。如果由于数据集太小而得不到结果,你可以考虑优化。机器学习是基于弱先验假设的结构化数据。这种方法的优点在于你使用算法之前你不需要知道太多数据,它能够训练出一个大范围的模型;副作用就是需要大量数据才能获得一个可信的答案。
7. 应用数据

不管你如何优雅的回答提出的问题,但数据科学家的工作直到用户去使用才算完成。把结果以某种形式呈现给用户作为参考来做对应的决策,展示的形式有很多种:将结果在 web 页面上画出来;把你发现的有用信息保存成 PDF;在 GitHub 上分享你的代码;把结论做成视频给你的商业客户,等等。总之一句话,要把你做的工作让其他人来使用。

2016-04-08 19:002598
用户头像

发布了 43 篇内容, 共 31.5 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

一些Web安全漏洞

穿过生命散发芬芳

HTTP 1月月更

基于 EventBridge API Destination 构建 SaaS 集成实践方案

阿里巴巴云原生

阿里云 云原生 EventBridge

机器学习服务活体检测算法荣获CFCA权威安全认证

HarmonyOS SDK

HMS Core

NFTScan 与 MintKit 达成战略合作伙伴,由 NFTScan 为其提供 NFT API 数据服务

NFT Research

NFT 数据基础设施

极盾科技CEO丁杨:让数据安全回归场景、业务和价值

极盾科技

数据安全

小游戏引擎选型注意事项

FinFish

游戏 小游戏 小游戏引擎

Jupyter Notebook入门指南

京东科技开发者

前端 服务端 Server 多编程语言 企业号 1 月 PK 榜

时序数据库 TDengine 携手北京科技大学设计研究院,助力冶金工业智慧化

TDengine

数据库 tdengine 时序数据库

架构实战营 - 写出外包学生管理系统的架构文档

huiwen

架构实战营

Java高手速成│实战:应用数据库和GUI开发产品销售管理软件(2)

TiAmo

数据库 Java、 JDBC

vivo 实时计算平台建设实践

vivo互联网技术

大数据 flink 实时计算

高性能且小巧的脚本语言 LuaJIT

ooooooh灰灰

lua 后端 JIT 网关

手写一个react,看透react运行机制

flyzz177

React

模块四作业

张贺

架构训练营

深入React源码揭开渲染更新流程的面纱

flyzz177

React

研运至简,创新无限!嘉为品牌VI全新升级

嘉为蓝鲸

自动化运维 嘉为蓝鲸 品牌升级

中台KPI怎么设计?

博文视点Broadview

隐私计算技术开源的整体现状

京东科技开发者

开源 经验分享 隐私计算 隐私安全

再快一点?动态内容如何加速

蔡农曰

程序员 互联网

RelativeLayout(相对布局)

芯动大师

Android Studio padding margin

外包学生管理系统详细架构设计文档

Geek_7d539e

融云获 2022 中国技术先锋年度评选「中国技术品牌影响力企业」奖

融云 RongCloud

2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如何写? +---------+ | class | +-----

福大大架构师每日一题

数据库 sql 福大大

中国北京|HICOOL 2023 全球创业大赛

科兴未来News

Hicool 海外 #双创赛事#

再快一点?Web 3动态内容如何加速?

Java全栈架构师

程序员 程序人生 Web 后端 架构师

灵活高效又美丽,谈谈我们的产品体验升级思路

嘉为蓝鲸

自动化运维 嘉为蓝鲸 IT服务管理中心

如何导入本地数据?

Towify

如何用弹出对话框实现登录页非空提示?

Towify

深度分析React源码中的合成事件

flyzz177

React

软件测试 | 简历中应该如何描述才能体现出软技能的实力 ?

霍格沃兹测试开发学社

微软高级数据科学家教你如何做数据科学_语言 & 开发_侠天_InfoQ精选文章