Python 教程:将 K-Means 聚类分析与 SQL 机器学习配合使用,对客户进行聚类分析
适用于: SQL Server 2017 (14.x) 及更高版本 Azure SQL 托管实例
本系列教程由四个部分组成,引导你使用 Python 在 SQL Server 机器学习服务中或在大数据群集上开发和部署 K-Means 聚类分析模型,以便对客户数据进行聚类分析。
本系列教程由四个部分组成,引导你使用 Python 在 SQL Server 机器学习服务中开发和部署 K-Means 群集模型,以便对客户数据进行聚类分析。
本系列教程由四个部分组成,引导你使用 Python 在 Azure SQL 托管实例机器学习服务中开发和部署 K-Means 群集模型,以便对客户数据进行聚类分析。
在本系列的第一部分中,你将设置本教程的先决条件,然后将示例数据集还原到一个数据库。 在本系列的后续部分中,使用这些数据在 Python 中通过 SQL 机器学习来训练和部署聚类分析模型。
在本系列的第二和第三部分中,在 Azure Data Studio 笔记本中开发一些 Python 脚本,用于分析和准备数据以及训练机器学习模型。 然后,在第四部分中,使用存储过程在数据库中运行这些 Python 脚本。
聚类分析可解释为将数据组织成组,其中一个组的成员在某些方面类似。 对于本系列教程,假设你拥有一家零售企业。 使用 K-Means 算法在产品购买及退货的数据集中执行针对客户的聚类分析。 通过对客户进行聚类分析,可以将特定组定为目标,更加高效地专注于市场营销工作。 K-Means 群集是一种无监督式学习算法,该算法根据相似性寻找数据中的规律。
在本文中,将学习以下内容:
- 还原示例数据库
第二部分介绍如何从数据库准备数据以执行聚类分析。
第三部分介绍如何在 Python 中创建和训练 K-Means 群集模型。
第四部分介绍如何在数据库中创建存储过程,以便基于新数据在 Python 中执行聚类分析。
先决条件
- 支持 Python 语言的 SQL Server 机器学习服务 - 按照 Windows 安装指南或 Linux 安装指南中的安装说明进行操作。
- 支持 Python 语言的 SQL Server 机器学习服务 - 按照 Windows 安装指南或 Linux 安装指南中的安装说明进行操作。 还可以启用 SQL Server 大数据群集上的机器学习服务。
- 支持 Python 语言的 SQL Server 机器学习服务 - 按照 Windows 安装指南中的安装说明进行操作。
Azure SQL 托管实例机器学习服务。 有关信息,请参阅 Azure SQL 托管实例机器学习服务概述。
用于将示例数据库还原到 Azure SQL 托管实例的 SQL Server Management Studio。
Azure Data Studio。 使用 Azure Data Studio 中同时适用于 Python 和 SQL 的笔记本。 若要详细了解笔记本,请参阅如何使用 Azure Data Studio 中的笔记本。
附加 Python 包 - 在本教程系列中的示例所使用的 Python 包中,有些可能是你已经安装了的,有些可能是你尚未安装的。
打开管理命令提示符,并更改为 Azure Data Studio 中使用的 Python 版本的安装路径。 例如,
cd %LocalAppData%\Programs\Python\Python37-32
。 然后,运行下面的命令,以安装所有尚未安装的包。 确保这些包安装在正确的 Python 安装位置。 可以使用选项-t
指定目标目录。pip install matplotlib pip install pandas pip install pyodbc pip install scipy pip install scikit-learn
运行以下 icacls 命令,将对已安装的库的 READ 和 EXECUTE 访问权限授予 SQL Server Launchpad Service 和 SID S-1-15-2-1 (ALL_APPLICATION_PACKAGES)。
icacls "C:\Program Files\Python310\Lib\site-packages" /grant "NT Service\MSSQLLAUNCHPAD":(OI)(CI)RX /T
icacls "C:\Program Files\Python310\Lib\site-packages" /grant *S-1-15-2-1:(OI)(CI)RX /T
还原示例数据库
本教程中使用的示例数据集已保存到 .bak 数据库备份文件,以供下载和使用。 此数据集派生自 事务处理性能委员会 (TPC) 提供的 tpcx-bb 数据集。
注意
如果在大数据群集上使用机器学习服务,请了解如何将数据库还原成 SQL Server 大数据群集主实例。
下载 tpcxbb_1gb.bak 文件。
使用以下详细信息,按 Azure Data Studio 中从备份文件还原数据库中的说明操作:
- 从下载的
tpcxbb_1gb.bak
文件导入。 - 将目标数据库命名为
tpcxbb_1gb
。
- 从下载的
可以查询
dbo.customer
表验证数据库还原后数据集是否存在:USE tpcxbb_1gb; SELECT * FROM [dbo].[customer];
下载 tpcxbb_1gb.bak 文件。
使用以下详细信息,按 SQL Server Management Studio 中将数据库还原到 SQL 托管实例的说明执行操作:
- 从下载的
tpcxbb_1gb.bak
文件导入。 - 将目标数据库命名为
tpcxbb_1gb
。
- 从下载的
可以查询
dbo.customer
表验证数据库还原后数据集是否存在:USE tpcxbb_1gb; SELECT * FROM [dbo].[customer];
清理资源
如果不打算继续学习本教程,请删除 tpcxbb_1gb
数据库。
下一步
在本系列教程的第一部分中,你已完成以下步骤:
- 还原示例数据库
若要为机器学习模型准备数据,按本系列教程的第二部分进行操作: