使用 PyCaret 在 SQL 中进行机器学习 第一部分
上次更新时间
这篇文章有帮助吗?
上次更新时间
这篇文章有帮助吗?
本文将涵盖以下内容
如何免费下载和安装 SQL Server
如何创建新数据库并将数据导入数据库
如何在数据库中启用和使用 Python 脚本
如何训练聚类算法,以便为数据集中的每个观测值分配聚类标签
进行 ML 实验的首选工具/环境是命令行、IDE 或 Notebook。然而,当数据量变得非常大,或者需要将 ML 模型投入生产时,这些工具/环境可能会带来限制。迫切需要具备在数据所在地编程和训练模型的能力。微软 SQL Server 在其 2019 版本中引入了这一能力。使用 SQL Server 进行机器学习的明显优势在于:
i. 从系统中提取大量数据既繁琐又耗时。在服务器上进行 ML 实验是将代码带到数据,而不是将数据带到代码
ii. ML 实验主要在计算机/CPU 内存中执行。大多数机器在大型数据集上训练 ML 算法时会达到性能上限。在 SQL Server 数据库中进行 ML 可以避免这种情况
iii. 将 ML Pipelines 与其他 ETL 流程集成和部署起来很容易
在将 PyCaret 功能用于 SQL Server 之前,你需要安装 SQL Server 和 PyCaret。这是一个多步骤过程
下载 SQL Server 2019 Developer Edition 文件 “SQL2019-SSEI-Dev.exe”
打开文件并按照说明进行安装(建议使用自定义安装选项)
选择新的 SQL Server 独立安装
在“实例功能”选项中,选择功能,包括“Python”(位于机器学习服务和语言扩展下)以及机器学习服务器(独立)
点击“接受”以同意安装 Python
安装可能需要 15-20 分钟
打开文件 “SSMS-Setup-ENU.exe” 以开始安装
安装可能需要 5-10 分钟
安装完所有内容后,你需要启动一个服务器实例。为此,启动 SSMS。在登录阶段,系统会要求你输入 SQL Server 的名称,你可以从下拉菜单中选择。连接建立后,你可以看到服务器上的所有对象。如果你是第一次下载 SQL Server 且没有可用的数据库,你需要先创建一个新数据库。
在对象资源管理器面板中,右键单击“数据库”,然后选择“新建数据库”
输入数据库名称及其他信息
设置可能需要 2-3 分钟,包括创建数据库、用户和设置所有权
现在你需要使用 SQL Server Management Studio 将 CSV 文件导入数据库。
在数据库中创建一个表 “jewellery”
右键单击数据库,选择任务->导入数据
对于数据源,选择平面文件源。然后使用浏览按钮选择 CSV 文件。在点击“下一步”按钮之前,花一些时间配置数据导入。
对于目标,选择正确的数据库提供程序(例如 SQL Server Native Client 11.0)。输入服务器名称;勾选使用 SQL Server 身份验证,输入用户名、密码和数据库,然后点击“下一步”按钮。
在“选择源表和视图”窗口中,你可以在点击“下一步”按钮之前编辑映射。
勾选“立即运行”,然后点击“下一步”按钮
点击“完成”按钮运行包
我们将使用系统存储过程 **sp_execute_external_script** 在 SQL Server “内部”运行 Python。首先,你需要打开一个“新建查询”。在你的实例中执行以下查询,以启用该过程进行远程脚本执行
注意:在继续后续步骤之前,请重启实例。
可以执行以下 SQL 语句来检查 Python 路径并列出已安装的包。
检查 Python 路径
列出已安装的包
要安装 PyCaret 包,请打开命令提示符,并导航到安装了 SQL Server 的 Python 包位置。默认位置是
导航到“Scripts” 目录,并使用 pip 命令安装 PyCaret 包
注意:请确保你有权访问 SQL Server 目录以安装包和/或更改配置。否则,包安装将失败。
安装可能需要 5-10 分钟
注意:如果在运行 SQL 脚本时遇到关于缺少 “lightgbm” 模块的问题。请遵循以下说明
i. 卸载 “lightgbm”
ii. 重新安装 “lightgbm”
执行以下 SQL 语句,从 SQL Server 验证 PyCaret 安装
聚类是一种机器学习技术,它将具有相似特征的数据点进行分组。这些分组对于数据探索、模式识别和分析数据子集非常有用。聚类的一些常见业务用例包括:
✔ 用于营销目的的客户细分。
✔ 用于促销和折扣的客户购买行为分析。
✔ 在流行病(如 COVID-19)爆发中识别地理聚类。
在 SQL Server 中运行以下 SQL 代码
原始表会附带一个包含标签的新列 ‘Cluster’。
默认情况下,PyCaret 训练一个包含 4 个聚类的 K均值 聚类模型(即表中的所有数据点被分为 4 组)。默认值可以轻松更改
要更改聚类数量,可以在 get_clusters() 函数中使用 num_clusters 参数。
要更改模型类型,可以在 get_clusters() 函数中使用 model 参数。
请参阅以下代码以训练包含6 个聚类的 K众数模型
按照这些步骤,你可以为 jewellery 数据集中的每个观测点分配聚类值。你也可以在其他数据集上使用类似的步骤进行聚类。
在本文中,我们学习了如何在 SQL Server 中使用 Python 库(PyCaret)来构建聚类模型。同样,你可以根据业务问题的需求构建和运行其他类型的监督式和无监督式 ML 模型。
我未来的文章将是关于在 SQL Server 中使用 Python 和 Pycaret 探索监督学习技术(回归/分类)的教程。
本文是关于如何使用以下工具在 SQL Server 中训练和部署无监督机器学习聚类模型的分步教程:(一个用于 Python 的低代码 ML 库).**
SQL Server 是微软的关系型数据库管理系统。作为一个数据库服务器,它的主要功能是根据不同应用程序的请求存储和检索数据。在本教程中,我们将使用** 进行机器学习,通过将 PyCaret 库导入 SQL Server。
如果你之前使用过 SQL Server,很可能已经安装并拥有数据库访问权限。如果没有,** 下载 SQL Server 2019 Developer 或其他版本。
** 或打开 SQL Server 安装中心下载“SQL Server 管理工具”文件 “SSMS-Setup-ENU.exe”
在本教程中,我们将使用 PyCaret 的 **‘jewellery.csv’** 文件,该文件可在以下位置获取:.
你可以进一步查阅网站,获取关于可以在 SQL Server 中以类似方式实现的,其他监督式和无监督式实验的文档。