Tutorial de Python: Clasificación de clientes por categorías mediante la agrupación en clústeres k-means con aprendizaje automático de SQL

Se aplica a: SQL Server 2017 (14.x) y versiones posteriores Azure SQL Managed Instance

En esta serie de tutoriales de cuatro partes, va a usar Python para desarrollar e implementar un modelo de agrupación en clústeres k-means en SQL Server Machine Learning Services o Clústeres de macrodatos para categorizar datos de clientes.

En esta serie de tutoriales de cuatro partes, va a usar Python para desarrollar e implementar un modelo de agrupación en clústeres k-means en SQL Server Machine Learning Services para agrupar en clústeres datos de clientes.

En esta serie de tutoriales de cuatro partes, va a usar Python para desarrollar e implementar un modelo de agrupación en clústeres k-means en Machine Learning Services en Azure SQL Managed Instance para agrupar en clústeres datos de clientes.

En la primera parte de esta serie, va a configurar los requisitos previos para el tutorial y, después, restaurará un conjunto de datos de ejemplo en una base de datos. Más adelante en esta serie, va a usar estos datos para entrenar e implementar un modelo de agrupación en clústeres en Python con aprendizaje automático de SQL.

En las partes dos y tres de esta serie, va a desarrollar scripts de Python en un cuaderno de Azure Data Studio para analizar y preparar los datos y entrenar un modelo de aprendizaje automático. Después, en la parte cuatro, va a ejecutar esos scripts de Python dentro de una base de datos mediante los procedimientos almacenados.

Agrupar en clústeres es organizar datos en grupos, donde los miembros de un grupo son de alguna forma similares. Para esta serie de tutoriales, imagine que es el propietario de un negocio de venta al por menor. Va a usar el algoritmo k-means para realizar la agrupación de clientes en clústeres en un conjunto de datos de compras y devoluciones de productos. Al agrupar los clientes en clústeres, puede centrar sus actividades de marketing de forma más eficaz al dirigirse a grupos específicos. La agrupación en clústeres k-means es un algoritmo de aprendizaje no supervisado que analiza patrones en datos basándose en similitudes.

En este artículo, aprenderá a:

  • Restauración de una base de datos de ejemplo

En la parte dos, va a aprender a preparar los datos de una base de datos para realizar la agrupación en clústeres.

En la parte tres, va a aprender a crear y entrenar un modelo de agrupación en clústeres k-means en Python.

En la parte cuatro, va a aprender a crear un procedimiento almacenado en una base de datos que pueda realizar la agrupación en clústeres en Python basándose en datos nuevos.

Prerrequisitos

  • Azure Data Studio Usará un cuaderno en Azure Data Studio para Python y SQL. Para obtener más información sobre los cuadernos, vea Uso de los cuadernos en Azure Data Studio.

  • Paquetes de Python adicionales: en los ejemplos de esta serie de tutoriales, se usan paquetes de Python que puede que no estén instalados.

    Abra un símbolo del sistema administrativo y cambie a la ruta de instalación de la versión de Python que use en Azure Data Studio. Por ejemplo, cd %LocalAppData%\Programs\Python\Python37-32. A continuación, ejecute los siguientes comandos para instalar cualquiera de estos paquetes que no están ya instalados. Asegúrese de que estos paquetes están instalados en la ubicación de instalación correcta de Python. Puede usar la opción -t para especificar el directorio de destino.

    pip install matplotlib
    pip install pandas
    pip install pyodbc
    pip install scipy
    pip install scikit-learn
    

Ejecuta los siguientes comandos icacls para conceder acceso de LECTURA y EJECUCIÓN a las bibliotecas instaladas a SQL Server Launchpad Service y 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

Restauración de la base de datos de ejemplo

El conjunto de datos de ejemplo usado en este tutorial se ha guardado en un archivo de copia de seguridad de base de datos .bak para que pueda descargarlo y usarlo. Este conjunto de datos se basa en el conjunto de datos tpcx-bb proporcionado por Transaction Processing Performance Council (TPC).

Nota

Si usa Machine Learning Services en clústeres de macrodatos, consulte Restauración de una base de datos en la instancia maestra del clúster de macrodatos de SQL Server.

  1. Descargue el archivo tpcxbb_1gb.bak.

  2. Siga las indicaciones de Restauración de una base de datos a partir de un archivo de copia de seguridad en Azure Data Studio con estos datos:

    • Importe el archivo tpcxbb_1gb.bak que ha descargado.
    • Asigne a la base de datos de destino el nombre "tpcxbb_1gb".
  3. Para asegurarse de que el conjunto de datos exista después de restaurar la base de datos, ejecute la siguiente consulta en la tabla dbo.customer:

    USE tpcxbb_1gb;
    SELECT * FROM [dbo].[customer];
    
  1. Descargue el archivo tpcxbb_1gb.bak.

  2. Siga las instrucciones de Restauración de una base de datos en SQL Managed Instance de SQL Server Management Studio, con los detalles siguientes:

    • Importe el archivo tpcxbb_1gb.bak que ha descargado.
    • Asigne a la base de datos de destino el nombre "tpcxbb_1gb".
  3. Para asegurarse de que el conjunto de datos exista después de restaurar la base de datos, ejecute la siguiente consulta en la tabla dbo.customer:

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

Limpieza de recursos

Si no quiere continuar con este tutorial, elimine la base de datos tpcxbb_1gb.

Pasos siguientes

En la parte uno de esta serie de tutoriales, ha completado estos pasos:

  • Restauración de una base de datos de ejemplo

Para preparar los datos para el modelo de aprendizaje automático, siga la parte dos de esta serie de tutoriales: