写点什么

数学 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:432052
用户头像
陈思 InfoQ编辑

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

关注

评论

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

刚火了的中台转头就拆,一大波公司放不下又拿不起来!

小傅哥

Java 架构 中台 小傅哥 海盗奇兵

test

大肚皮狒狒

​程序员的二十多个防猝死指南小妙招

Java架构师迁哥

架构实战营模块 1 作业

Lukefang

架构实战营

微信业务架构图&学生管理系统

刘敏

【学习总结】模块1:为何架构设计能力难以提升?

小李

架构实战营

架構實戰營 - 模塊 1 作業

Frank Yang

架构实战营模块 1 作业

夏日

架构实战营

由 JVM Attach API 看跨进程通信中的信号和 Unix 域套接字

AI乔治

Java 架构 jdk JVM

阿里内部资料:并发编程知识点总结

Java架构师迁哥

# 模块1作业

灯火阑珊

企业与员工的三种共同体关系

石云升

28天写作 职场经验 管理经验 4月日更

Flink程序结构与数据流

大数据技术指南

flink 4月日更

架构实战营 作业1

solider

Visual Studio Code 插件之 - Git History

HoneyMoose

2021金三银四程序员面试必问总结

Java架构师迁哥

HW Y7 2018

无名

微信业务架构和学生管理系统

thewangzl

如何在 Mac 下用 Clion 调试 MySQL 源码

AI乔治

Java MySQL 架构 调优

通过调试 Nginx 源码来定位有趣 Nginx 转发合并斜杠和编码问题

AI乔治

Java nginx 架构

看我如何在面试官前吹牛P

yes

面试

一个计算机专业上岸的学长心得体会

🌍

4月日更 专升本

CentOS共享windows文件夹

风翱

centos windows 磁盘挂载 4月日更

第一周作业

Damon

遭GitHub连夜封杀下架?被泄露的阿里内部Java面试手册到底有多强?

Java架构师迁哥

再聊 TCP backlog

AI乔治

Java 架构 TCP TCP/IP

架构实战营模块一 作业

我叫大法师

抖音春晚幕后 | 支撑 12 亿红包雨的云原生基础设施

数据库 分布式 云原生 边缘计算

架构实战营模块1第1课-学习总结

吴建中

架构实战营

架构实战营模块一作业

梦寐凯旋

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