推广 热搜: csgo  vue  2023  angelababy  gps  信用卡  新车  htc  落地  控制 

数据科学家:那些年,我都学过哪些编程语言…

   2023-06-26 网络整理佚名1190
核心提示:而我个人的噩梦是用C语言进行日常的编程工作。尽管数据科学最初源于统计领域,但它很快覆盖了计算机科学领域,如今数据科学已成为了必不可少的工具。而且该课程的重点是,在不使用库的情况下实现学习算法,因此与任何专业语言一样出色。在大学时期,Weka作为我完成模式识别课程作业一种工具。你可能听说过,R语言是数据分析语言家族中的一个特殊的语言。

编译:米卡

我们对事物的看法都不同,有时一个人最喜欢的语言可能是另一个人的噩梦。 我个人的噩梦是用 C 进行日常编程

本文介绍了我在数据科学家职业生涯中所学到的语言,包括,Weka、R、C++ 和。

数据科学是一个广阔的领域,从业者来自各种专业背景,例如经济学、生物学和语言学等。 尽管数据科学起源于统计学领域,但它很快就超越了计算机科学领域,如今数据科学已成为必不可少的工具。

由此可见,数据科学编程语言的发展就像宇宙:可能需要一生的时间才能充分探索,而且还在不断扩展。

众所周知,语言的通用性、使用性和复杂性之间存在着权衡。 因此,一种语言的流行程度只能作为当前趋势的指标,而不是作为决定您选择的因素。 最终,这是一个应用、经验和个人喜好的问题。

01

通过吴恩达的机器学习课程,我开始接触机器学习领域。 如果你也想学习机器学习,这是一个非常好的选择。

虽然当时R语言比较流行,但吴恩达在课程中选择了它。 当时我并没有觉得这让我烦恼,但现在看来很奇怪。 数据科学课程应该关注如何进行数据分析,而不是使用语言来进行数据分析。

吴恩达在这门课程中选择了一种更通用的语言,原因之一是这门课程的受众主要是计算机科学家和工程师,他们已经熟悉了它。 该课程的重点是在不使用库的情况下实现学习算法,因此它与任何专业语言一样好。

虽然我非常喜欢自动化工具和方便的库,但在开始数据科学时自己动手也很重要。

用于执行各种数据分析和机器学习任务的库并不缺乏。 它是信号处理和控制工程师等的首选框架。

但也不难理解为什么它没有征服数据分析领域。 毕竟它不是开源的,而且非常昂贵。 至于说,虽然开源,代码兼容,但是性能却远远逊色。

02

威卡

我与 Weka 的经历很短暂。 在大学里,Weka 被用作我的模式识别课程的工具。

通过这门课程,我学到的最有价值的教训是:GUI对数据科学家有着深远的影响。 Weka 以其易用性和理解性而自豪,并声称只需加载数据集并按下按钮即可轻松训练机器学习模型。 这样做的好处也是显而易见的。 当时市场对预测模型的需求很大,而能够满足这种需求的人才并不多。

寻找自动化工具并利用它们得出解决方案是当时的研究重点,即。 但我们花了几年时间并经历了很多失败才意识到,如果没有人类的参与,这个过程就无法完成。

在 20 世纪 90 年代末,无需完全理解数据就可以构建模型的幻想破灭了。 自动化工具可以简化我们的工作,发现良好的算法参数化、实用的预处理步骤和高效的测试管道。 但它们无法取代人类专家,至少在我们目前的专业水平上无法取代。

总而言之,您对您创建的模型负责。

03

在我的论文中,我深入研究和探索了R语言的特性和奥秘。 您可能听说过 R 语言是数据分析语言家族中的一种特殊语言。 R语言并不容易学,它是一个学习的过程,刚开始学习时我经常感到自我怀疑和迷失方向。

我们的目标是创建可以自动化机器学习实验的软件工具。 R更多的是目的而不是手段,我们希望利用丰富的R语言库对机器学习技术进行广泛的研究。

当时我想搭建一个完整的框架,在毕业设计中使用面向对象编程,所以首先要解决的问题是:R语言支持面向对象编程吗? 答案是肯定的。 实际上,它有四种不同的工作方式。 这些都与我在 C++、Java 或 .

R语言还提供了很多方便的工具,比如data.,可以轻松捕捉数据集的特征和需求。 然而R语言也存在一些让我头疼的技术问题。 是一个免费的 R UI,当绘图不适合其平面时,它会抛出运行时错误等。

虽然我再也不会尝试在 R 中从头开始构建框架,但 R 提供的用于帮助可视化和预处理的大量软件包是巨大的优势。

04

C++

现在你一定会问,为什么要用C++来进行数据分析呢? 为什么有人会这样做?

暑假的时候我在一家公司实习,公司用的是C++。 我猜想公司可能是考虑了传统和业务的结合,所以选择了能够高效执行的代码。

尽管如此,我还是决定使用R语言。 实习结束后,我将模型和函数转移到C++。 由于各种图表和出色的预处理技术,R语言也引起了公司中使用C++进行数据分析的人们的关注。 一些同事甚至对R产生了兴趣并开始尝试。

在获得满意的结果后,我尝试使用简单的 PCA 和 SVM R 包将模型合并到一个巨大的 C++ 框架中。 包非常适合于此,并提供支持向量机相关操作。

如今,当您想要跨语言迁移机器学习模型时,有很多选择。 例如,可以传递数学模型,即算法的参数化,然后跨库转换模型文件,或者使用包进行跨语言交互。

我发现仅仅使用相同的参数化是不够的。 虽然算法保持不变,例如具有高斯核的 SVM,但不同的实现可能采用不同的数学模型,因此需要不同的参数集。 即使模型保持不变,特定的实现因素也会显着影响模型的性能,因此需要不同的参数化。

最合适的方法是使用rcpp,一个可以链接C++框架和R脚本的包。 有些包还支持两种不同语言的库之间的兼容性,但在这种情况下很少使用。

05

我曾经和一位现任公司高管进行过这样的对话:

- 您打算在未来的工作中使用哪种语言?

- 我想我会用它。

——你用过吗?

— 不,我用过很多种语言,但我有一种很好的预感。

我很高兴我说服了他,现在我很舒服地使用它进行数据分析。 设置实验的简便性、附加功能的便利性以及丰富的库使我的工作非常顺利。 虽然我主要自己编写代码,但到目前为止我经常使用 Gym 来定义强化学习实验的环境。 同时,这是一个扩展库,提供了大量的强化学习算法。

不过,我并不是说要无敌。 程序员不应该局限于某种语言,而应该不断尝试。 因此,下次遇到新数据集时,不要害怕尝试新软件。 即使失败了,你也会从中有所收获。

原文链接:

点击这里关注我,记得标记star哦~

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON