文章目录

  • 使用的语言是什么?
  • 机器学习语言
  • Python
  • R
  • Julia
  • JavaScript
  • Scala
  • C/C++
  • Java

我经常被问到的一个问题是:机器学习最好的编程语言是什么?

我已经回答了这个问题很多次了,现在是时候在博客上进一步探讨这个问题了。
最终,用于机器学习的编程语言应该考虑到自己的需求和偏好。

使用的语言是什么?

最近的一项民意调查的题目是 “您在分析/数据挖掘/数据科学工作中使用了哪些编程/统计语言?“ 这些趋势与前一年几乎相同。

机器学习语言

您现在对 ML 及其实际应用有了基本的了解,但可能很难知道从哪里开始或如何开始。重要的第一步是至少了解机器学习中使用的一种主要编程语言。

在我们深入研究之前,让我们谈谈数据科学家的受欢迎程度。Stack Overflow 在 2018 年进行的开发者调查显示,Python 是最流行的编程语言,其次是 Java 和 Javascript。

Python

Python 具有无可争议的受欢迎程度。Python 的创造者 Guido Van Rossum 说:“我当然没有打算创建一种面向大众消费的语言。” 可以肯定地说,他做了相反的事情,因为 Python 将编码带到了回避它的人的最前沿——过度复杂的语法早已不复存在。

这个描述流行 Python 用例的图表是开发者调查的另一个产品。最初,Web 开发似乎是 Python 最流行的用途,约占 26%。然而,数据分析和机器学习的结合显示了惊人的 27%。那么为什么Python在机器学习领域如此受欢迎呢?

在深入研究之前,我们必须了解 AI 项目在技术堆栈和所需技能方面与传统软件项目不同。因此,选择一种稳定、灵活且具有多种工具的编程语言非常重要。Python 满足所有这些要求。

除了简单性和一致性之外,它还有一个很棒的社区,可以帮助构建各种 ML 框架和库。这些是预先编写的 Python 代码包,可帮助机器学习工程师快速解决常见任务并更快地开发产品。

Python 为 ML 提供了一种其他语言无法提供的简单体验:您不必在这里重新发明轮子(WHL)。

Python 比其他编程语言更直观,因为它的语法非常简单,是团队实施的最佳选择。开发人员可以专注于手头的 ML 任务,例如复杂的算法或通用工作流,而不是语言的细节。

Python 还非常灵活且独立于平台,因为它受到 Linux、Windows 和 macOS 的支持,而无需 Python 解释器。这也使得在使用自己的 GPU 时训练更便宜、更简单。57% 的机器学习工程师报告使用 Python,其中 33% 的人更喜欢使用 Python 进行开发。

但是,对于任何事情,我们也必须考虑到 Python 的缺点:

  • 几乎没有统计模型包
  • 由于全局解释器锁 (GIL) 的存在,Python 中的线程非常有问题,而且多线程受 CPU 限制的应用程序比单线程应用程序运行得更慢。

R

R 是为高级统计和数据可视化而构建的。对于任何想要了解机器学习或统计中涉及的数学计算的人来说,这就是适合您的语言。

R 在数据分析和可视化方面胜过 Python。它允许快速原型设计和使用数据集来构建您的 ML 模型。例如,如果你想将大段的段落分解成单词或短语来寻找模式,R 会击败 Python。

R 还附带了一系列令人印象深刻的库和工具,可帮助您实现机器学习。这些高级数据分析包涵盖了建模前和建模后阶段,专为模型验证或数据可视化等特定任务而设计。

除了一个活跃且乐于助人的开源社区之外,R 还可以免费下载并附带 GNU 软件包,将其置于 SAS 和 Matlab 等昂贵的替代品中。R Studio 是一个 IDE,可让开发人员创建 ML 算法的统计可视化。R 带有控制台、语法高亮编辑器和其他有用的工具,例如绘图、历史记录、调试、工作区管理。

Julia

对,别想歪了,不是你们认为的某某。

而是这个

但 Julia 是一个真正的弱者:虽然不如 Python 和 R 流行,但它的设计与 Python、MATLAB 和 R 的功能以及 C++ 和 Java 的执行速度相匹配。现在有足够的理由记住它!Java 有两个巨大的优势:速度 + 专为并行性而设计。因为感觉像是一种脚本语言,所以切换起来也不难,所以 Python/R 开发者可以轻松上手。

在 AI 方面,Julia 最适合深度学习(在 Python 之后),非常适合快速执行基础数学和科学。Julia 专注于科学计算领域,非常适合它。由于这些计算能力,Julia 比 Python 和 R 具有可扩展性和更快的速度。


Julia 还可以调用 Python、C 和 Fortran 库,并带有交互式命令行和功能齐全的调试器。

然而,与 Python 相比,Julia 在面向对象的编程、可扩展性、社区和库的多样性方面有所欠缺。它仍处于起步阶段。大多数 ML 专家同时使用这两种方法:Julia 用于后端深度学习,它可以实现最佳性能,而 Python 用于前端。

JavaScript

当您想到 ML 时,JavaScript 肯定不是第一个想到的。尽管 JavaScript 主要用于 Web 开发,但它已通过 TensorFlow.js 进入机器学习领域。

TensorFlow.js 是 Google 创建的一个开源库,它使用 JavaScript 在浏览器中构建机器学习模型,或者在 Node.js、JavaScript 中构建机器学习模型。对于只熟悉 Web 开发的人来说,TensorFlow.js 是一个很好的 ML 入门。

TensorFlow.js 支持 WebGL,因此您的机器学习模型可以在 GPU 存在时运行;例如,如果用户在手机上打开网页,该模型可以利用感官数据。

Tensorflow.js 允许您导入现有的预训练模型、重新训练导入的模型并在浏览器中创建模型。让我们看看 TensorFlow.js 的优缺点

许多开发人员正在将 ML 从后端服务器带到前端应用程序。TensorFlow.js 现在允许开发人员以纯 HTML 格式创建和运行 ML 模型,而无需复杂的后端系统。这种简单性使您可以轻松地制作出色的项目。这里有一些例子:

  • 自动图片处理:通过卷积神经网络生成艺术
  • 使用 AI 的游戏
  • 内容推荐引擎
  • 学习本地网络/设备上的使用模式的活动监控
  • 对象检测,例如识别照片中的许可证

Scala


Scala 比 Python 快得多,并将面向对象和函数式编程的优点带到了一种高级语言中。它最初是为 Java 虚拟机 (JVM) 构建的,并且非常容易与 Java 代码交互。开发人员可以轻松构建高性能系统,同时通过 Scala 使用静态类型来避免错误。

Scala 有几个用于线性代数、随机数生成、科学计算等的库。

Scala 在性能、学习曲线和易用性方面也是 Apache Spark 的绝佳选择(Apache Spark 是一个数据处理框架,用于处理巨型数据集上的任务并通过多台计算机分发数据处理任务)。

C/C++

C/C++ 和机器学习很难配对。从一开始,Python 似乎比 C/C++ 有很多优势:

  • Python更灵活,语法简单,更容易学
  • 使用 Python 可以让您专注于 ML 的细微差别,而不是语
  • 大量的库和包
  • 您可以通过 Python 解释器通过命令行以交互方式处理数在 C/C++ 中为 ML 算法调试要困难得多

但是,使用 C/C++ 也有一些优点:

  • C/C++ 是最高效的语言之一——机器学习算法需要快速。
  • 使用 C/C++ 可以让您控制从内存、CPU 等开始的单个资源
  • TensorFlow、caffe、vowpal、wabbit、libsvm等很多ML框架其实都是用C++实现的
  • 你一定会在招聘人员和公司中脱颖而

作为最古老的编程语言之一,C 和 C++ 在机器学习方面是一个利基市场。C 可用于补充现有的机器学习项目,计算机硬件工程师更喜欢 C,因为它的速度和控制水平——您可以使用 C/C++ 从头开始​​实现算法。

通常,在以下情况下使用 C/C++:

  • 速度极其重要
  • 您的用例没有 Python 库
  • 你想控制内存使用,因为你会推动你的系统限制

Java


Java 通常以企业开发和后端系统而闻名。但是,选择 Java 而不是 Python 或 R 有几个原因:

  • 许多公司的基础设施、软件、应用程序等都是用 Java 构建的,这意味着集成和兼容性问题被最小化
  • 很多流行的数据科学框架,如 Fink、Hadoop、Hive 和 Spark 都是用 Java 编写
  • Java 可用于数据科学中的各种流程,例如清洗数据、数据导入和导出、统计分析、深度学习、NLP 和数据可视化
  • Java 虚拟机使开发人员可以编写跨多个平台相同的代码,并且可以更快地构建工具
  • 使用 Java 构建的应用程序易于扩展
  • Java 像 C/C++ 一样快速执行,这就是为什么 Linkedin、Facebook 和 Twitter 使用 Java 来满足他们的一些 ML 需求
  • Java 是一种强类型编程语言,这意味着开发人员必须明确和具体地了解变量和数据类型
  • 生产代码库通常用 Java 编写

Java 还配备了各种用于 ML 的工具和库:

2022年最受欢迎的7种机器学习的编程语言汇总排名详解相关推荐

  1. 2022年Java面试总结,200多页真题笔记和详解(核心考点、6家大厂)

    为了进大厂,花了很多时间和精力在面试准备上,也刷了很多题.但题刷多了有点怀疑人生,不知道刷的这些题在之后的工作中能不能用到,如果只是为面试而刷题是不是在浪费人生呢? 如果你想进大厂,或者去一个更大.更 ...

  2. Spring Boot项目(Maven\Gradle)三种启动方式及后台运行详解

    Spring Boot项目三种启动方式及后台运行详解 1 Spring Boot项目三种启动方法 运行Application.java类中的Main方法 项目管理工具启动 Maven项目:mvn sp ...

  3. 判断数组中某个元素除自身外是否和其他数据不同_算法工程师要懂的3种算法数据结构:线性表详解...

    算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当然8种只是一个大概的划分,是一个"仁者见仁.智者见智"的问题. 其实这些 ...

  4. 创建三个并发进程linux,Linux下几种并发服务器的实现模式(详解)

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

  5. 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...

    1>单线程或者单进程 相当于短链接,当accept之后,就开始数据的接收和数据的发送,不接受新的连接,即一个server,一个client 不存在并发. 2>循环服务器和并发服务器 1.循 ...

  6. 2022年中考英语作文热点话题终极押题(附范文及详解)

    2022年中考英语作文热点话题终极押题(附范文及详解) 一.双减政策 去年九月,中国正式开始实施(carry out)了"双减政策"(the double reduce polic ...

  7. 走穿java23种设计模式-15责任链模式详解

    走穿java23种设计模式-15责任链模式详解 责任链模式是一种常见的行为模式. 一.责任链模式的现实场景 习伟过生日邀请了很多朋友到KTV一起庆祝,为了增加欢乐的气氛,习伟建议大家一起玩击鼓传花的游 ...

  8. 区块链用哪种语言 Java_区块链开发用什么语言呢?区块链与编程语言的关系详解...

    原标题:区块链开发用什么语言呢?区块链与编程语言的关系详解 区块链的概念就随着比特币的大热开始逐渐进入公众视野,比特币的拥有者为了使其创造更高的财富,开始疯狂炒作,因而引发购买比特币大浪潮.然而等到比 ...

  9. php两种基本的输出方及实例详解

    在本篇文章里小编给大家整理了一篇关于php两种基本的输出方及实例详解内容,有需要的朋友们可以跟着学习参考下. 在 PHP 中,有两种基本的输出方法:echo 和 print. echo 和 print ...

  10. 走穿java23种设计模式--18中介者模式详解

    走穿java23种设计模式–18中介者模式详解 中介者模式也称调停者模式,是一种比较简单的模式. 一.中介者模式的现实场景 蔡良因为上次表白时对方只看重他的物质方面,所以他对女朋友这个问题有点失望.因 ...

最新文章

  1. 20万个法人、百万条银行账户信息,正在暗网兜售
  2. win7 桌面图标拖不动解决方法
  3. 15分钟从零开始搭建支持10w+用户的生产环境(四)
  4. cmake The source directory xxxx does not appear to contain CMakeLists.txt
  5. 2016腾讯安全挑战赛第一轮-PC游戏方向
  6. HTTP 请求消息头部实例:
  7. 利用anaconda给pycharm配置python3.7版本的tensorflow虚拟环境的配置
  8. iOS宏和__attribute__
  9. php二维数组引用变量,PHP二维数组的引用赋值容易犯的错误
  10. python 操作excel表格
  11. vue中动画效果的实现
  12. PDF文档的页面方向旋转后如何保存?
  13. 理财趣事:要想财富滚滚来 先学普京打野猪
  14. 达尔文服务器_达尔文与网络设计艺术
  15. 自动驾驶数据之争,走向合规
  16. [BJDCTF2020]Mark loves cat 1——(超详细 三种方法)
  17. GEM5 模拟器简介
  18. iOS 初中级工程师简历指北
  19. 用canvas画一个炫酷的粒子动画倒计时
  20. vs2017开发ActiveX(主讲OCX)(十一)、类向导中MFC ActiveX添加方法、添加函数、添加变量、添加事件、添加属性、添加方法的区别

热门文章

  1. bat批处理脚本命令大全
  2. stm32最小原理图的PCB图绘制(含AHT20温度传感器)
  3. cmd长ping记录日志和时间_ping命令结果中如何显示时间
  4. arr访问绝对地址_ECSHOP源码里的图片的相对地址改为绝对地址 (1)
  5. java 1.7 32_java jdk 1.7 32位
  6. 阅读笔记《全景探秘游戏设计艺术》
  7. 软考-软件设计师持续更新
  8. 银行计算机知识,银行考试计算机知识试题及答案
  9. 基于Javaee的影视创作论坛的设计与实现(含源文件)
  10. 教程——Wind Turbine Maintenance(Agents)