Pregătire pentru modelare

Machine Learning pentru Marketing în Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Eșantion de date

telco_raw.head()

Antetul datelor Telcom

Machine Learning pentru Marketing în Python

Tipuri de date

telco_raw.dtypes
customerID           object
gender               object
SeniorCitizen        object
Partner              object
Dependents           object
tenure                int64
PhoneService         object
MultipleLines        object
InternetService      object

OnlineSecurity       object
OnlineBackup         object
DeviceProtection     object
TechSupport          object
StreamingTV          object
StreamingMovies      object
Contract             object
PaperlessBilling     object
PaymentMethod        object
MonthlyCharges      float64
TotalCharges        float64
Churn                object
Machine Learning pentru Marketing în Python

Separarea coloanelor categoriale și numerice

Separați identificatorul și variabila țintă ca liste

custid = ['customerID']
target = ['Churn']

Separați coloanele categoriale și numerice ca liste

categorical = telco_raw.nunique()[telcom.nunique()<10].keys().tolist()

categorical.remove(target[0])
numerical = [col for col in telco_raw.columns if col not in custid+target+categorical]
Machine Learning pentru Marketing în Python

One-hot encoding

Aceasta este o coloană tipică de date categoriale

Color
Red
White
Blue
Red
Machine Learning pentru Marketing în Python

Rezultatul one-hot encoding

Astfel arată după transformarea prin one-hot encoding.

Color Red White Blue
Red ----------> 1 0 0
White ----------> 0 1 0
Blue ----------> 0 0 1
Red ----------> 1 0 0
Machine Learning pentru Marketing în Python

One-hot encoding pentru variabile categoriale

One-hot encoding pentru variabile categoriale

telco_raw = pd.get_dummies(data=telco_raw, columns=categorical, drop_first=True)
Machine Learning pentru Marketing în Python

Scalarea caracteristicilor numerice

# Import StandardScaler library
from sklearn.preprocessing import StandardScaler

# Initialize StandardScaler instance scaler = StandardScaler()
# Fit the scaler to numerical columns scaled_numerical = scaler.fit_transform(telco_raw[numerical])
# Build a DataFrame scaled_numerical = pd.DataFrame(scaled_numerical, columns=numerical)
Machine Learning pentru Marketing în Python

Asamblarea finală

# Drop non-scaled numerical columns 
telco_raw = telco_raw.drop(columns=numerical, axis=1)

# Merge the non-numerical with the scaled numerical data telco = telco_raw.merge(right=scaled_numerical, how='left', left_index=True, right_index=True )
Machine Learning pentru Marketing în Python

Să exersăm preprocesarea datelor!

Machine Learning pentru Marketing în Python

Preparing Video For Download...