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

  • 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.

  1. Scaricare il file tpcxbb_1gb.bak.

  2. 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"
  3. È 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];
    
  1. Scaricare il file tpcxbb_1gb.bak.

  2. 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"
  3. È 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.

Passaggi successivi

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: