Esercitazione Python: Classificare i clienti tramite clustering K-Means con il Machine Learning in SQL
Si applica a: SQL Server 2017 (14.x) e versioni successive Istanza gestita di SQL di Azure
In questa serie di esercitazioni in quattro parti si userà Python per sviluppare e implementare un modello di clustering K-Means in Servizi di Machine Learning per SQL Server oppure in Cluster Big Data per classificare i dati dei clienti.
In questa serie di esercitazioni in quattro parti si userà Python per sviluppare e implementare un modello di clustering K-Means in Servizi di Machine Learning per SQL Server per il clustering dei dati dei clienti.
In questa serie di esercitazioni in quattro parti si userà Python per sviluppare e implementare un modello di clustering K-means in Servizi di Machine Learning per Istanza gestita di SQL di Azure per il clustering dei dati dei clienti.
Nella prima parte della serie verranno configurati i prerequisiti per l'esercitazione e quindi verrà ripristinato un set di dati di esempio in un database. Più avanti nel corso della serie questi dati verranno usati per eseguire il training e implementare un modello di clustering in Python con Machine Learning in SQL.
Nelle seconda e nella terza parte della serie si svilupperanno alcuni script Python in un notebook di Azure Data Studio per analizzare e preparare i dati ed eseguire il training di un modello di Machine Learning. Nella quarta parte verranno quindi eseguiti gli script Python all'interno di un database mediante stored procedure.
Per clustering si intende l'organizzazione dei dati in gruppi in cui i membri di ciascun gruppo sono simili per certi aspetti. Per questa serie di esercitazioni, si supponga di essere proprietari di un'azienda di vendita al dettaglio. Si userà l'algoritmo K-Means per eseguire il clustering dei clienti in un set di dati di acquisti e resi di prodotti. Il clustering dei clienti favorisce attività di marketing più mirate rivolte a gruppi specifici. Il clustering K-Means è un algoritmo di apprendimento non supervisionato che cerca schemi nei dati in base ad analogie.
In questo articolo viene spiegato come:
- Ripristinare un database di esempio
La seconda parte spiega come preparare i dati di un database per il clustering.
La terza parte spiega come creare ed eseguire il training di un modello di clustering K-Means in Python.
La quarta parte spiega come creare una stored procedure in un database in grado di eseguire il clustering in Python in base ai nuovi dati.
Prerequisiti
- Machine Learning Services per SQL Server con l'opzione del linguaggio Python: seguire le istruzioni di installazione nella guida all'installazione di Windows o nella guida all'installazione di Linux.
- Machine Learning Services per SQL Server con l'opzione del linguaggio Python: seguire le istruzioni di installazione nella guida all'installazione di Windows o nella guida all'installazione di Linux. È anche possibile abilitare Machine Learning Services in cluster Big Data di SQL Server.
- Machine Learning Services per SQL Server con l'opzione del linguaggio Python: seguire le istruzioni di installazione nella guida all'installazione di Windows.
Servizi di Machine Learning sull’istanza gestita di SQL di Azure. Per informazioni, vedere Panoramica di Machine Learning Services per Istanza gestita di SQL di Azure.
SQL Server Management Studio per il ripristino del database di esempio in Istanza gestita di SQL di Azure.
Azure Data Studio. Usare un notebook in Azure Data Studio sia per Python sia per SQL. Per altre informazioni sui notebook in Azure Data Studio, vedere Come usare i notebook in Azure Data Studio.
Pacchetti Python aggiuntivi: gli esempi in questa serie di esercitazioni usano pacchetti Python che potrebbero essere installati o meno.
Aprire un prompt dei comandi con privilegi di amministratore e passare al percorso di installazione per la versione di Python usata in Azure Data Studio. Ad esempio:
cd %LocalAppData%\Programs\Python\Python37-32
. Eseguire quindi i comandi seguenti per installare uno di questi pacchetti non ancora installati. Assicurarsi che questi pacchetti siano installati nel percorso di installazione python corretto. È possibile usare l'opzione-t
per specificare la directory di destinazione.pip install matplotlib pip install pandas pip install pyodbc pip install scipy pip install scikit-learn
Eseguire i seguenti comandi icacls per concedere l'accesso di lettura ed esecuzione alle librerie installate per il Servizio Launchpad di SQL Server e il 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
Ripristinare il database di esempio
Il set di dati di esempio usato in questa esercitazione è stato salvato in un file di backup del database con estensione bak che è possibile scaricare e usare. Questo set di dati deriva dal set di dati tpcx-bb fornito dal Transaction Processing Performance Council (TPC).
Nota
Se si usa Machine Learning Services in cluster Big Data, vedere l'articolo su come ripristinare un database nell'istanza master di un cluster Big Data di SQL Server.
Scaricare il file tpcxbb_1gb.bak.
Seguire le istruzioni in Ripristinare un database da un file di backup in Azure Data Studio usando i dettagli seguenti:
- Importare i dati dal file
tpcxbb_1gb.bak
scaricato. - Assegnare al database di destinazione il nome
tpcxbb_1gb
.
- Importare i dati dal file
È possibile verificare che il set di dati esista dopo il ripristino del database eseguendo una query sulla tabella
dbo.customer
:USE tpcxbb_1gb; SELECT * FROM [dbo].[customer];
Scaricare il file tpcxbb_1gb.bak.
Seguire le istruzioni in Ripristinare un database in un'istanza gestita di SQL in SQL Server Management Studio, usando i dati seguenti:
- Importare i dati dal file
tpcxbb_1gb.bak
scaricato. - Assegnare al database di destinazione il nome
tpcxbb_1gb
.
- Importare i dati dal file
È possibile verificare che il set di dati esista dopo il ripristino del database eseguendo una query sulla tabella
dbo.customer
:USE tpcxbb_1gb; SELECT * FROM [dbo].[customer];
Pulire le risorse
Se non si intende continuare con questa esercitazione, eliminare il database tpcxbb_1gb
.
Passaggio successivo
Nella prima parte di questa serie di esercitazioni sono stati completati i passaggi seguenti:
- Ripristinare un database di esempio
Per preparare i dati per il modello di Machine Learning, seguire la seconda parte di questa serie di esercitazioni: