图片由编辑提供
Python 和 R 是机器学习中最常用的两种编程语言。两者都是开源且易于访问的,但 Python 是一种通用语言,而 R 是一种统计编程语言。这使其成为各种数据角色和应用程序的理想选择,例如数据挖掘。
这两种编程语言还鼓励可重用性,这意味着新手机器学习工程师和爱好者不必从头开始编写代码。使用它们来构建项目就是集成正确的模块和算法 - 您所需要知道的就是在哪里查找。为了帮助您解决问题,我们整理了一些最常用的 Python 和 R 机器学习算法列表。请务必为本指南添加书签,并在遇到困难时参考它。
1.K-Means聚类算法
顾名思义,机器学习最终是关于教授计算机系统,以便它们能够自主运行。这可以通过监督学习或无监督学习来促进。
执行后者的一种方法是使用 k 均值聚类算法,该算法旨在通过对相似的数据点进行分组(聚类)来查找数据集中的模式。
在 R 编程语言中,k-means 聚类通常使用 k-均值 功能。不幸的是,Python 似乎没有提供如此简单的开箱即用的解决方案。 Python 的 K 均值聚类通常使用 sci-kit-learn 库的 sklearn.cluster.KMeans 类与 matplotlib.pyplot 库结合使用来执行。
k 均值聚类算法是无监督机器学习中使用最广泛的算法之一,您可能迟早会遇到或需要使用它。因此,它是您应该学习和掌握的首要内容之一。
2. 决策树
决策树算法因其可访问性和可用性而受到青睐。它是一种监督机器学习算法,主要用于分类。例如,公司可以用它来确定如何通过聊天机器人处理难相处的客户。
决策树教会机器如何根据先前的经验做出选择。它在新机器学习工程师中如此受欢迎的原因之一是因为它可以建模并以图表或图表的形式直观地表示。这种品质使其对具有传统编程技能的人具有吸引力。
决策树主要有两种类型:
- 连续变量决策树:指目标变量不受限制的决策树。
- 分类变量决策树:指具有分组的有限目标变量的决策树。
R 编程中与决策树最相关的包和类包括:
- 数据集
- ca工具
- 派对
- dplyr
- 马格里特
再次,您必须向外寻找 Python 模块来实现该算法。与 k 均值聚类算法一样,sci-kit-learn 包含许多决策树模块,其中 sklearn.tree 最为相关。您还可以使用 Graphviz 模块以编程方式呈现决策树的图形表示。
3. 线性回归分析
线性回归是另一种常用的监督机器学习算法。线性回归分析的目标是根据一个变量或一组变量推断出结果或值。
与大多数算法一样,可视化这一点的最佳方法是使用具有两个轴的图。 Y 轴代表因变量,而 X 轴代表自变量。线性回归分析的目标是形成或找到这两个变量之间的关系。
如果自变量的增加导致因变量的增加(类似于指数增长),则称为正关系。另一方面,如果因变量的值随着自变量值的增加而减少(类似于指数衰减),则这称为负关系。
我们使用最佳拟合线来确定关系,可以使用斜率-截距线性方程来表示 y=mx+b。
但是我们如何在 R 和 Python 中促进线性回归呢? R 编程语言中与线性回归分析最相关的包是:
- ggplot2
- dplyr
- 扫帚
- ggpubr
这 gg 包用于创建和绘制图表,而 dplyr 和 扫帚 用于操作和显示数据。 sklearn.线性模型 可用于在 Python 中构建线性回归模型。您还可以添加 NumPY 来处理大型矩阵和数组。
Pexels 拍摄
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.线性模型
- sklearn.metrics
使用 R 生成逻辑回归的过程要简单得多,可以使用 glm() 函数来完成。
5.支持向量机
支持向量机 (SVM) 算法主要用于分类,但也可用于基于回归的任务。 SVM 是最简单的分类方法之一。
在 SVM 中,必须分类的对象被表示为 n 维空间中的点。该点的每个坐标称为其特征。 SVM 尝试通过首先绘制超平面来对对象进行分类,以便每个类别的所有点都位于两侧。
虽然可能存在多个超平面,但 SVM 尝试找到最能区分这两个类别的超平面。它主要通过找到类别之间的最大距离(称为边距)来实现这一点。直接接触或落在边缘上的点称为支持向量。
由于SVM是一种有监督的机器学习方法,因此需要训练数据。您可以使用 sklearn 的专用 SVM 模块在 Python 中实现此机器学习算法。 R 中的 SVM 通常使用轮廓和绘图函数来处理。
结论
其中许多算法证明了机器学习对概率和统计的依赖程度。尽管 R 早于现代机器学习工程,但它与现代机器学习工程相关,因为它是一种统计编程语言。因此,许多算法可以轻松构建或开箱即用。
Python 是一种多范式通用编程语言,因此它具有更广泛的用例。 Sci-kit-learn 是最值得信赖的 Python 机器学习模块库。如果您想了解更多关于上述算法的信息,请访问图书馆的官方网站。
是一名软件开发人员和技术作家。在全职从事技术写作之前,她曾在一家拥有 5,000 名体验式品牌组织的 Inc. 担任首席程序员,该组织的客户包括三星、时代华纳、Netflix 和索尼。