写点什么

数学 vs 编程,哪个才是数据科学的敲门砖?

  • 2019-11-12
  • 本文字数:2002 字

    阅读完需:约 7 分钟

数学vs编程,哪个才是数据科学的敲门砖?

数据科学其实就是一门数学、计算机、软件相关的复合型的技术,离开编程自然是无法存在的。无论是数据科学家还是数据分析师,都需要跨学科人才,必须知道如何操作代码以便告诉计算机如何分析数据。他们要比软件工程师更擅长统计学,比统计学家更擅长软件工程,需要掌握的知识有数学统计、编程能力、机器学习、研究能力等。


如果我了解机器学习算法的全部数学逻辑,但我却不能很好地进行编程,那我还有机会进入数据科学领域吗?


如果我只是勉强了解哪些机器学习算法背后的数学知识,但我可以很好地进行编程,那我有没有资格成为一名数据科学家?


我希望,在我大学毕业前努力进入数据科学领域之前就能知道这个答案是什么。


先说一下我的背景。我有数学背景,但在大学期间并没有学过多少编程课程。我在大学学过的编程语言包括 R、C++ 和 Matlab。


Matlab 并不是开源语言,主要用于研究行业。R 没有 Python 那样拥有庞大的社区,尤其是在数据科学相关的库中。C++(C 族)仍然是编程的基础。所以如果你正在学习编程的话,我还是建议你学习 C 族的语言。


当我在实习期间,Python 在这个行业使用得最多。因此,我仍然需要自己去学习 Python。此外,我就只选修了一门与数学有关的机器学习课程。


我感到有些不知所措,因为,我不仅要学习数学,同时还要提高我的编程技能。因此,当时我就在想,我应该将更多的精力放在编程上呢,还是放在学习数学上呢?

数学,还是编程?

我将分享我的观点,即在目前的行业中,哪一个实际上更受欢迎。


让我来问你一个问题。如果你是数据科学的技术主管,并且手下已经有很多博士在为你工作,同时,你还想扩大团队。现在你心目中有两个候选人,其中一个更擅长编程,另一个更擅长数学概念。那么,你会选择哪一个候选人呢?


这个问题并没有正确或错误的答案,但跟据我的观察,他们通常会喜欢在编程方面拥有更好技能的那些人。


你可能会想,为什么会是这样呢?


原因很简单,因为大多数数据科学项目的方向,都是由博士提供的,他们应该有更多的知识。因此,能够更快地实现多种方法的人,将是最后一个坚持到底的人


然后,你可能会问,都说统计是数据科学的基础,而你却告诉我,为了进入数据科学领域,只需学习如何编程就可以了?🤔


不是的,数学在数据科学中仍然非常重要。 那些更懂数学的人,将会是能够提出新想法来改进机器学习模型的那些人。


目前市场上有大量的机器学习模型。因此,知道在什么样的场景中使用哪些模型,肯定会为你节省大量时间。此外,当之前表现很好的模型,突然开始出现性能下降时,你就能找出可能的原因了。


但是,如果你只是想进入数据科学领域的话,就不需要在数学部分深入研究太多细节。数据科学并不只是关于如何推导或求解数学方程式。 更重要的是,要知道如何定义并解决业务问题


例如,你在一家电子商务公司工作。你得到一个任务,让你实现对列表进行自动分类。可能,你需要做的第一步就是定义问题,也许是说明你需要实现的时间表和正确性。下一步,你将考虑模型可能面临的一些问题,并需要澄清这些问题。


假设,如果列表名称和图片属于不同的类别,那么应该如何对列表进行分类?是按图片进行分类呢,还是按列表名称进行分类呢?


在理解了你的团队同意的标准作业程序(Standard Operating Procedure,SOP)之后,那么只有你才能启动这个项目。


回到主题,数据科学迫切需要的技能之一是分叉 GitHub 代码并在数据集上进行实验的能力。因此,如果你擅长编程的话,那么无论编程语言是什么,你都能够测试不同的方法。


例如,你正在使用给定的数据集来训练 NER(Name Entity Recognition,命名实体识别)模型。让我们想象一下,目前还没有人用 Python 在 NER 上编写代码,而唯一可用的代码,由斯坦福大学提供,用 Java 编写的。遇到这种情况应该怎么办?因此,掌握不同编程语言的知识绝对是一个加分项,这样,你就可以节省用 Python 编写整个代码的时间,以便训练模型。


另一方面,如果你深入学习机器学习的数学部分,你就会对你应该关注哪些指标更加敏感,这要取决于不同的问题。 假设你正在从事一个信用欺诈项目。你应该关注的指标就不再是正确性,而应该是 f1-score 等。因为你的目标是不仅能够识别尽可能多的欺诈案件,而且还要保持准确率。

最后的感想

在数据科学领域中,数学和编程同等重要,但如果你正考虑在数据科学领域转行或者开始你的职业生涯,我想说的是,对于各种机器学习模型来说,掌握编程技能要比深入钻研数学更为重要。


开始进行更多的实际项目,并能够在面试过程中清晰地陈述和回答问题,这肯定会增加你进军数据科学领域的机会。


进入数据科学领域可没那么容易,但请记住,不要放弃,继续努力!


你所有的努力很快就会有回报,不管有多难,要坚持你正在做的事情。


作者介绍:


Low Wei Hong 是 Shopee 的数据科学家。他的经验主要涉及网站抓取、创建数据管道以及解决业务问题的机器学习模型。


原文链接:


https://towardsdatascience.com/math-vs-coding-data-science-43e216b4f671


2019-11-12 15:432105
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 280.5 次阅读, 收获喜欢 1301 次。

关注

评论

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

GraphQL设计思想

Ryan Zheng

graphql

云小课 | 详解华为云独享型负载均衡如何计费

华为云开发者联盟

负载均衡 华为云 弹性负载均衡 独享型ELB实例 独享型负载均衡

protocol buffer的高效编码方式

程序那些事

Java protobuf 程序那些事

华为高级技术专家多年经验分享微服务治理体系、架构及实践文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

打造数字人民币的大运应用场景

CECBC

🏆「作者推荐」Java技术专题-JDK/JVM的新储君—GraalVM和Quarkus

洛神灬殇

Java JVM GraalVM 8月日更

区块链+物联网设备,能产生什么反应?

CECBC

模块一作业

小智

架构实战营

零基础入门:基于开源WebRTC,从0到1实现实时音视频聊天功能

JackJiang

音视频 WebRTC 即时通讯 IM

20年IT老民工苦心编撰成超大流量分布式系统架构解决方案文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

MySQL 不完全入门指南

Java 编程 架构 面试 架构师

KubeCube开源:魔方六面,降阶Kubernetes落地应用

网易数帆

开源 Kubernetes 容器 KubeCube

在?进来看看新一季周边到底做点啥?【话题讨论】

气气

话题讨论

来了!《中国移动2021智能硬件质量报告》正式发布

【虚拟机专栏】智能合约执行引擎的前世今生

趣链科技

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

后Kubernetes时代的虚拟机管理技术之kubevirt篇

谐云

虚拟机 #Kubernetes#

一分钟学会使用ApiPost中的全局参数和目录参数

CodeNongXiaoW

大前端 测试 后端 接口工具

web技术分析| 一篇前端图像处理秘籍

anyRTC开发者

大前端 音视频 WebRTC web技术分享

DEX去中心化交易所自动刷量机器人开发|去中心化做市机器人

Geek_23f0c3

去中心化交易所系统开发 量化交易机器人系统开发 量化机器人 做市机器人 自动刷量机器人

终于有大牛把Spring微服务架构设计第2版文档给整理完毕了

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

从lowcode看下一代前端应用框架

百度Geek说

大前端 lowcode

Golang:再谈生产者消费者模型

Regan Yue

协程 Go 语言 8月日更

NameServer 核心原理解析

leonsh

RocketMQ 消息队列 NameServer

6种常用Bean拷贝工具一览

码农参上

8月日更 对象拷贝

Java NIO在接口自动化中应用

FunTester

Java nio 接口测试 测试开发

多样数字人民币钱包来袭,阻力与动力并存

CECBC

没有7年经验你真学不会这份SpringCloud实战演练文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

传统到敏捷的转型中,谁更适合做Scrum Master?

华为云开发者联盟

Scrum 敏捷 团队 项目经理 Scrum Master

Android模块化开发实践

vivo互联网技术

android 架构 开发 项目实战 模块

国产接口调试工具ApiPost中的内置变量

Proud lion

大前端 测试 后端 Postman 开发工具

数学vs编程,哪个才是数据科学的敲门砖?_大数据_Low Wei Hong_InfoQ精选文章