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 中执行聚类分析。

先决条件

  • 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 大数据群集主实例

  1. 下载 tpcxbb_1gb.bak 文件。

  2. 使用以下详细信息,按 Azure Data Studio 中从备份文件还原数据库中的说明操作:

    • 从下载的 tpcxbb_1gb.bak 文件导入。
    • 将目标数据库命名为 tpcxbb_1gb
  3. 可以查询 dbo.customer 表验证数据库还原后数据集是否存在:

    USE tpcxbb_1gb;
    SELECT * FROM [dbo].[customer];
    
  1. 下载 tpcxbb_1gb.bak 文件。

  2. 使用以下详细信息,按 SQL Server Management Studio 中将数据库还原到 SQL 托管实例的说明执行操作:

    • 从下载的 tpcxbb_1gb.bak 文件导入。
    • 将目标数据库命名为 tpcxbb_1gb
  3. 可以查询 dbo.customer 表验证数据库还原后数据集是否存在:

    USE tpcxbb_1gb;
    SELECT * FROM [dbo].[customer];
    

清理资源

如果不打算继续学习本教程,请删除 tpcxbb_1gb 数据库。

下一步

在本系列教程的第一部分中,你已完成以下步骤:

  • 还原示例数据库

若要为机器学习模型准备数据,按本系列教程的第二部分进行操作: