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
- SQL Server Machine Learning Services con la opción de lenguaje de Python: siga las instrucciones de instalación en la Guía de instalación para Windows o la Guía de instalación para Linux.
- SQL Server Machine Learning Services con la opción de lenguaje de Python: siga las instrucciones de instalación en la Guía de instalación para Windows o la Guía de instalación para Linux. También puede habilitar Machine Learning Services en clústeres de macrodatos de SQL Server.
- SQL Server Machine Learning Services con la opción de lenguaje de Python: siga las instrucciones de instalación en la Guía de instalación para Windows.
Machine Learning Services en Azure SQL Managed Instance. Para obtener información, vea Machine Learning Services de Instancia administrada de Azure SQL (versión preliminar).
SQL Server Management Studio para restaurar la base de datos de ejemplo en Azure SQL Managed Instance.
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.
Descargue el archivo tpcxbb_1gb.bak.
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 el nombre
tpcxbb_1gb
a la base de datos de destino.
- Importe el archivo
Para asegurarte de que el conjunto de datos exista después de restaurar la base de datos, ejecuta la siguiente consulta en la tabla
dbo.customer
:USE tpcxbb_1gb; SELECT * FROM [dbo].[customer];
Descargue el archivo tpcxbb_1gb.bak.
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 el nombre
tpcxbb_1gb
a la base de datos de destino.
- Importe el archivo
Para asegurarte de que el conjunto de datos exista después de restaurar la base de datos, ejecuta 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
.
Paso siguiente
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: