# Applicazioni pratiche di machine learning/Segmentazione dei clienti

Applicazioni pratiche di machine learning
Copertina Tutti i moduli · Sviluppo
* Applicazioni pratiche di machine learningApplicazioni pratiche di machine learning
** Previsioni su scommesse sportiveApplicazioni pratiche di machine learning/Previsioni su scommesse sportive
** Previsioni su azioni, criptovalute, derivatiApplicazioni pratiche di machine learning/Previsioni su azioni, criptovalute, derivati
** Trovare lavoroApplicazioni pratiche di machine learning/Trovare lavoro
** Previsioni sul cambiamento climaticoApplicazioni pratiche di machine learning/Previsioni sul cambiamento climatico
** Previsioni sul livello del mareApplicazioni pratiche di machine learning/Previsioni sul livello del mare
** Previsioni sulle produzioni agricoleApplicazioni pratiche di machine learning/Previsioni sulle produzioni agricole
** Riconoscimento della scrittura a manoApplicazioni pratiche di machine learning/Riconoscimento della scrittura a mano
** Previsioni sugli incendiApplicazioni pratiche di machine learning/Previsioni sugli incendi
** Diagnosi di malattieApplicazioni pratiche di machine learning/Diagnosi di malattie
** Diagnosi di malattie mentaliApplicazioni pratiche di machine learning/Diagnosi di malattie mentali
** Identificazione delle pulsarApplicazioni pratiche di machine learning/Identificazione delle pulsar
** Identificazione dei social botApplicazioni pratiche di machine learning/Identificazione dei social bot
** Approvazione carte di creditoApplicazioni pratiche di machine learning/Approvazione carte di credito
** Previsione di reatiApplicazioni pratiche di machine learning/Previsione di reati
** Concessione sussidiApplicazioni pratiche di machine learning/Concessione sussidi
** Previsione di vendite futureApplicazioni pratiche di machine learning/Previsione di vendite future
** Segmentazione dei clientiApplicazioni pratiche di machine learning/Segmentazione dei clienti
** Previsioni su direct mailApplicazioni pratiche di machine learning/Previsioni su direct mail
* Appendice
** Installazione di RApplicazioni pratiche di machine learning/Installazione di R
** Creare reports in RStudioApplicazioni pratiche di machine learning/Creare reports in RStudio
** Creare reports in JupyterApplicazioni pratiche di machine learning/Creare reports in Jupyter
** ChatGpt come data analyst o data scientistApplicazioni pratiche di machine learning/ChatGpt come data analyst o data scientist
Modifica il sommario

### Parte 1: Dati

I seguenti datasets contengono informazioni relativi ai coupons offerti a un gran numero di clienti e consentono di prevedere quali di essi diventeranno fedeli al prodotto in offerta. Supponiamo che venga dato a 100 clienti uno sconto per l'acquisto di due bottiglie d'acqua. Dei 100 clienti, 60 sceglieranno di di utilizzare il coupon. Si vuole prevedere quale dei 60 clienti tornerà (durante o dopo il periodo promozionale) per acquistare lo stesso oggetto di nuovo. Per fare questa previsione, abbiamo lo storico di un anno di acquisti prima dell'incentivo dato al cliente ed inoltre abbiamo anche lo storico degli acquisti di molti altri clienti (alcuni dei quali hanno ricevuto la stessa offerta). La cronologia delle transazioni contiene tutti gli articoli acquistati e non solo quelli correlati all'offerta. Nel dataset ad ogni cliente viene data una sola offerta.
Files: Ci vengono forniti 3 file relazionali:
* operations.csv: contiene la cronologia delle transazioni per tutti i clienti per un periodo di almeno 1 anno prima di aver dato loro il coupon
* trainHistory.csv: contiene dati sul coupon offerto a ciascuno cliente e informazioni sulla sua risposta comportamentale
* testHistory.csv: contiene dati sul coupon offerto a ciascuno cliente ma non include la sua risposta
* offers.csv: contiene informazioni sulle offerte (coupons)
Campi: Tutti i campi sono resi anonimi per proteggere la privacy del cliente e le informazioni sulle vendite.
Trainhistory.csv
* id: un ID univoco che rappresenta un cliente
* chain - Un numero intero che rappresenta un'offerta della catena di negozi - Un ID che rappresenta una determinata offerta
* market: un ID che rappresenta una regione geografica
* repeattrips: il numero di volte in cui il cliente ha ripetuto l'acquisto
* repeater - Un valore booleano, uguale a repeattrips> 0
* offerdate - La data in cui un cliente ha ricevuto l'offerta
transactions.csv
* id - vedi sopra
* chain - vedi sopra
* dept - Un raggruppamento aggregato della categoria (ad es. Acqua)
* category - La categoria del prodotto (ad es. Acqua gassata)
* company: un ID dell'azienda che vende l'articolo
* brand: un ID del marchio a cui appartiene l'articolo
* date - La data di acquisto
* productsize - La quantità di prodotto acquistata (ad es. 16 once di acqua)
* productmeasure - L' unità di misura del prodotto (ad esempio once)
* purchasequantity: il numero di unità acquistate
* purchaseamount - L'importo in dollari acquistato
offers.csv
* offer - vedi sopra
* category - vedi sopra
* quantity - Il numero di unità che è necessario acquistare per ottenere lo sconto
* company - vedi sopra
* offervalue: il valore in dollari dell'offerta
* brand: vedi sopra
Il file transazioni.csv occupa circa 21 GB di spazio e quindi per poterlo analizzare, bisogna ridurlo attraverso una funzione in Java, considerando solo gli elementi relativi a selezionati categorie, marchi, aziende questo riduce il file a 76.6MB.
Caricamento dei dati:
Panoramica dei dati:
Pulizia dei dati:
Si cercano eventuali dati mancanti identificati da NA, -1 oppure 999 :
Non ci sono dati mancanti nelle variabili...

### Parte 2: Domanda di ricerca

Si vuole prevedere quali clienti ritorneranno (durante o dopo il periodo promozionale) per acquistare nuovamente la stessa offerta e quindi quali clienti possono essere considerati “validi clienti" e con quale probabilità ripeteranno l'acquisto.

### Parte 3: Modellizzazione

I dati per costruire il modello sono quelli antecedenti al 01-04-2013 e sono chiamati traning set. Questa data corrispondono al 60% dei dati in base alla variabile offerdate, mentre quelli relativi al periodo successivo costituiscono il validation set.
Si scelgono i predictors cioè le variabili con cui verrà creato il modello e e si sceglie anche la variabile da prevedere 'repeater' che assume il valore 1 se il cliente ripete l'acquisto dell'offerta, o 0 altrimenti. Se il cliente ripete l'acquisto, allora è un valido cliente.
Per prevedere i clienti validi la libreria gbm adotta l'algoritmo di machine learning gradient stocastic, che modifica in parte l'algoritmo di base.

### Parte 4: Previsione

Dopo aver ottenuto il modello, è possibile prevedere quali sono i clienti validi calcolando la probabilità di ripetere l'acquisto dell'offerta sia sul training set che sulla validation set calcolando Accuracy, AUC, Precision, Recall. I clienti validi sono considerati coloro che hanno ripeteranno l'acquisto con una probabilità superiori al 65%. Per ottenere una migliore Accuracy, AUC ecc si può migliorare il modello aggiungendo nuovi predictors e/o modificando gli iperparametri nel modello ... DA FARE ...
... nel training set:
... nel validation set :

### Parte 5: Conclusione

Ora è possibile sapere quali sono i clienti validi nel testing set: