写点什么

数学 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


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-11-12 15:431925
用户头像
陈思 InfoQ编辑

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

关注

评论

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

标准的开发框架,对企业开发有多重要?

Learun

敏捷开发 快速开发

数据安全无小事:揭秘华为云GaussDB(openGauss)全密态数据库

华为云开发者联盟

安全 数据 加密

在K8S Volume中使用 subPath

东风微鸣

Kubernetes 最佳实践

socket编程

菜鸟小sailor 🐕

websocket

微服务的理想与现实

京东科技开发者

云原生

架构师训练营第 2 期第一周作业

井中人

Java中的String到底占用多大的内存空间?你所了解的可能都是错误的!!

冰河

Java 内存泄露 string 性能调优 内存溢出

一致性 hash

garlic

极客大学架构师训练营

面试官的灵魂一击:你懂 MySQL 事务日志吗?

Java架构师迁哥

批处理 有状态等应用类型在K8S上应该如何配置?

东风微鸣

Kubernetes 最佳实践

食堂就餐卡系统设计

Griffenliu

关于编码

西贝

Java 编码

mongodb源码实现、调优、最佳实践系列-Mongodb网络模块源码实现及性能调优(一)

杨亚洲(专注MongoDB及高性能中间件)

MySQL mongodb 中间件 架构师 分布式数据库mongodb

商用密码与区块链共推数字经济发展

CECBC

网络安全 数字经济

为什么Java容器推荐使用ExitOnOutOfMemoryError而非HeapDumpOnOutOfMemoryError?

东风微鸣

Kubernetes 最佳实践 jvm调优

听说你会缓存?

架构师修行之路

redis 缓存 微服务

容器化应用系统上生产的最佳实践

东风微鸣

Kubernetes 最佳实践 生产

大明湖畔昇腾绽放,趵突泉里智能奔涌

脑极体

设计数据库集群读写分离并非易事

架构师修行之路

分布式 微服务

epoll服务器解析

菜鸟小sailor 🐕

Vidyo产品给用户方带来了什么直接的便利

dwqcmo

音视频 集成架构 解决方案 智能硬件

谁说AI看不懂视频?

华为云开发者联盟

视频 剪辑

容器开发运维人员的Linux操作机配置优化建议

东风微鸣

Kubernetes 最佳实践 k8s入门

Java中String占用空间的评估标准

陈德伟

Java jdk 源码剖析

如果只推荐一本 Python 书,我要 Pick 它!

Python猫

Python 学习 编程 程序员 码农

二十一、深入Python强大的装饰器

刘润森

Python

小熊派开发实践丨漫谈LiteOS之传感器移植

华为云开发者联盟

开发 IoT stm32

区块链赋能供应链金融|应用优势与四类常见模式

CECBC

区块链

终于,SM2国密算法被Linux内核社区接受了!

阿里云基础软件团队

如何基于消息中间件实现分布式事务?我想说的都在这儿了!!

冰河

分布式事务 微服务 分布式数据库 数据一致性 海量数据

架构师训练营第2期-第一周-学习总结

井中人

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