Regressione Lineare
Come predire Customer Engagement. Articolo scritto con chatGPT
Intelligenza Artificiale al Servizio del Marketing
Introduzione
Nel panorama competitivo del marketing digitale, anticipare il comportamento dei clienti è essenziale per massimizzare il ROI. Grazie all'intelligenza artificiale (IA), è possibile utilizzare modelli predittivi per stimare il grado di engagement di un cliente, ovvero la probabilità che interagisca con una campagna.
In questo articolo esploreremo come applicare la regressione lineare per predire l'engagement utilizzando Python, partendo da un dataset reale.
Cosa si intende per "Engagement"?
L'engagement del cliente rappresenta il livello di coinvolgimento di un utente in una campagna o iniziativa marketing. Può manifestarsi attraverso:
- aperture di email
- clic su annunci
- interazioni social
- acquisti
Nel nostro esempio, definiamo engagement in modo binario:
df['Engaged'] = df['Response'].apply(lambda x: 0 if x == 'No' else 1)
Caricamento e Preparazione del Dataset
Obiettivi:
- Rimuovere dati mancanti
- Convertire le variabili categoriche
- Dividere il dataset in training (80%) e test (20%)
- Applicare la regressione lineare e valutare il modello
Useremo un dataset CSV disponibile a questo indirizzo:
https://www.liviobollini.it/eng.csv
Esempio Completo in Python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
# 1. Caricamento del dataset
url = "https://www.liviobollini.it/eng.csv"
df = pd.read_csv(url)
# 2. Rimozione dei valori nulli
df.dropna(inplace=True)
# 3. Creazione della variabile target binaria (Engaged)
df['Engaged'] = df['Response'].map({'No': 0, 'Yes': 1})
# 4. Codifica delle variabili categoriche (one-hot encoding)
df_encoded = pd.get_dummies(df.drop(columns=['Response']), drop_first=True)
print(df_encoded.head())
# 5. Separazione tra features (X) e target (y)
X = df_encoded.drop(columns=['Engaged'])
y = df_encoded['Engaged']
# 6. Divisione in training e test set
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 7. Regressione lineare con scikit-learn
lr = LinearRegression()
lr.fit(X_train, y_train)
# 8. Predizione e valutazione con R2
y_pred = lr.predict(X_test)
r2 = r2_score(y_test, y_pred)
print(f"Affidabilità del modello sul test set (R2): {r2:.2f}")
Predizione dell'Engagement di un Nuovo Cliente
Supponiamo di avere un nuovo cliente con le seguenti caratteristiche (valori da adattare al dataset):
# Nuovo cliente ipotetico
nuovo_cliente = pd.DataFrame([{
'Age': 34,
'Income': 52000,
'Gender_Male': 1,
'Education_Graduate': 1,
'Marital_Status_Single': 0,
# ... includere tutte le colonne usate in X
}])
# Assicuriamoci che le colonne siano le stesse di X
nuovo_cliente = nuovo_cliente.reindex(columns=X.columns, fill_value=0)
# Predizione dell'engagement
engagement_prob = lr.predict(nuovo_cliente)[0]
print(f"Probabilità di engagement: {engagement_prob:.2f}")
Se la probabilità è superiore a 0.5, è molto probabile che il cliente sia ingaggiato.
Approfondimenti
Sebbene la regressione lineare possa essere utile per la classificazione binaria in contesti semplici, in molti casi è preferibile utilizzare algoritmi più sofisticati, come:
- Regressione lineare: specificamente pensata per problemi di classificazione.
- Random Forest: utile per modelli non lineari e dataset complessi.
- Support Vector Machine: efficace per separazioni nette fra classi.
- Reti Neurali: potenti per grandi volumi di dati con molte variabili.
Questi approfondimenti possono migliorare l'affidabilità, la generalizzazione e l'interpretabilità del modello predittivo.
Conclusione
La regressione lineare, seppur semplice, è uno strumento potente per prevedere l'engagement dei clienti. Integrando marketing e intelligenza artificiale, le aziende possono:
- Segmentare meglio il proprio pubblico
- Ottimizzare le campagne
- Migliorare la personalizzazione
Utilizzando dati reali e modelli predittivi, puoi trasformare il tuo approccio marketing in una strategia guidata dai dati.