Python和R中机器学习算法的比较

这份列出了Python和R中最常用的机器学习算法的清单,旨在帮助新手工程师和爱好者熟悉最常用的算法

Python 和 R 是最常用的机器学习编程语言之一。两者都是开源且易于使用的,但是 Python 是通用编程语言,而 R 是一种统计编程语言。这使得它非常适合各种数据角色和应用,如数据挖掘。

这两种编程语言还可以鼓励重复使用,这意味着新手机器学习工程师和爱好者不必从头编写代码。使用它们构建项目是关于集成正确的模块和算法-你只需要知道在哪里寻找。为了帮助你,我们编制了一份关于 Python 和 R 中最常用的一些机器学习算法列表。确保将此指南加入书签,并在遇到问题时参考它。

1. K-Means 聚类算法

顾名思义,机器学习最终是关于教授计算机系统以便它们能够自主运行。这可以通过监督或无监督学习来实现。

一种执行后者的方法是使用 K-Means 聚类算法,该算法通过将类似的数据点分组(聚类)来查找数据集中的模式。

在 R 编程语言中,通常使用 k-means 函数执行 k-means 聚类。不幸的是,Python 似乎没有一个简单明了的开箱即用解决方案。使用 sci-kit-learn 库的 sklearn.cluster.KMeans 类与 matplotlib.pyplot 库通常会执行 Python 中的 k-means 聚类。

K-Means 聚类算法是最广泛用于无监督机器学习的算法之一,你很可能在早期或以后运行它或需要使用它。因此,这是你应该学习和掌握的第一个算法之一。

2. 决策树

决策树算法因其易用性和可用性而受到青睐。它是一种监督式机器学习算法,通常用于分类。例如,公司可以使用它来确定如何通过聊天机器人处理困难客户。

决策树教机器如何从以往的经验中做出选择。其中一个原因是,它可以被建模和可视化地表示为图表或图表,这使其对具有传统编程技能的人具有吸引力。

有两种主要类型的决策树:

  • 连续变量决策树:指具有无限目标变量的决策树。
  • 分类变量决策树:指具有分组有限目标变量的决策树。

在 R 编程语言中,最关注决策树的包和类包括:

  • Datasets
  • caTools
  • party
  • dplyr
  • magrittr

再次说明,你必须从外部查找 Python 模块来实现此算法。与 k-means 聚类算法一样,sci-kit-learn 包含大量用于决策树的模块,其中 sklearn.tree 是最相关的。你还可以使用 Graphviz 模块以编程方式呈现决策树的图形表示。

3. 线性回归分析

线性回归是另一种广泛使用的监督式机器学习算法。线性回归分析的目标是根据一个变量或一组变量推断出结果或价值。

像大多数算法一样,最好的方法是使用两个轴的图形来可视化这一点。Y 轴表示因变量,而 X 轴则保持自变量。线性回归分析的目标是形成或找到这两个变量之间的关系。

如果自变量的增加导致因变量的增加(类似于指数增长),则称为正相关关系。另一方面,如果因变量的值随着自变量的值增加而减少(类似于指数衰减),则称为负相关关系。

我们使用最佳拟合线来确定关系,可以使用斜率截距线性方程 y=mx+b 表示。

但是,我们如何在 R 和 Python 中实现线性回归呢?在 R 编程语言中,最关注线性回归分析的包是:

  • ggplot2
  • dplyr
  • broom
  • ggpubr

gg 包用于创建和绘制图表,而 dplyr 和 broom 用于操作和显示数据。你可以使用 sklearn.linear_model 在 Python 中构建线性回归模型。你还可以添加 NumPY 来处理大型矩阵和数组。

4. 逻辑回归

与线性回归一样,逻辑回归允许我们基于另一个(组)变量的值来预测变量的值。然而,线性回归使用度量值,而逻辑回归使用离散变量。这些是只能有两个值(是或否,0或1,真或假等)的二元变量。

在现实世界中,这可以用于确定一个人购买产品的可能性(零售)或他们患病的可能性(医疗保健)。例如,我们可以使用年龄,身高和体重作为自变量(x)。二元结果将是因变量(y)。因此,x是实数的定义域,而y包含离散值。

逻辑回归的目标是估计(预测)结果或发生的概率。因为y值的值是二进制的,所以我们不能使用线性方程,必须使用激活函数。

使用Sigmoid函数来表示逻辑回归:

f(x)= L / 1 + e^(-x)

y = 1 /(1 + e^-(a+b1x1+b2x2+b3x3+…))

与逻辑回归相关的Python包和模块有:

  • matplotlib.pyplot
  • sklearn.linear_model
  • sklearn.metrics

使用R生成逻辑回归的过程要简单得多,可以使用glm()函数完成。

5. 支持向量机

支持向量机(SVM)算法主要用于分类,但也可用于基于回归的任务。SVM是分类的最简单方法之一。

在SVM中,必须分类的对象在n维空间中表示为一个点。该点的每个坐标称为其特征。SVM试图通过首先绘制一个超平面,使每个类别的所有点都在两侧来对对象进行分类。

虽然可能存在多个超平面,但SVM尝试找到最佳分离两个类别的超平面。它主要是通过找到类别之间的最大距离(称为间隔)来实现的。触及或直接落在边缘上的点称为支持向量。

由于SVM是一种有监督的机器学习方法,它需要训练数据。您可以使用sklearn的专用SVM模块在Python中实现此机器学习算法。在R中,通常使用等高线和绘图函数来处理SVM。

结论

这些算法中的许多都证明了机器学习在概率和统计上的依赖性。虽然R先于现代机器学习工程,但它与之相关,因为它是一种统计编程语言。因此,这些算法中的许多可以轻松地构建或直接实现。

Python是一种多范式通用编程语言,因此具有更广泛的用途。Sci-kit-learn是Python机器学习模块中最值得信赖的库。如果您想了解更多关于上述算法和其他算法的信息,请访问该库的官方网站。

Nahla Davies是一名软件开发人员和技术作家。在全职从事技术写作之前,她曾担任过一家5000家体验品牌机构的首席程序员,其客户包括三星,时代华纳,Netflix和索尼等。