Przygotowanie do modelowania

Uczenie maszynowe w marketingu w Pythonie

Karolis Urbonas

Head of Analytics & Science, Amazon

Próbka danych

telco_raw.head()

Nagłówek danych telekomunikacyjnych

Uczenie maszynowe w marketingu w Pythonie

Typy danych

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
Uczenie maszynowe w marketingu w Pythonie

Podział na kolumny kategoryczne i numeryczne

Wyodrębnienie identyfikatora i zmiennej docelowej jako listy

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

Wyodrębnienie nazw kolumn kategorycznych i numerycznych jako listy

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]
Uczenie maszynowe w marketingu w Pythonie

Kodowanie one-hot

Typowa kolumna z danymi kategorycznymi

Kolor
Czerwony
Biały
Niebieski
Czerwony
Uczenie maszynowe w marketingu w Pythonie

Wynik kodowania one-hot

Tak wygląda wynik transformacji z użyciem kodowania one-hot.

Kolor Czerwony Biały Niebieski
Czerwony ----------> 1 0 0
Biały ----------> 0 1 0
Niebieski ----------> 0 0 1
Czerwony ----------> 1 0 0
Uczenie maszynowe w marketingu w Pythonie

Kodowanie one-hot zmiennych kategorycznych

Kodowanie one-hot zmiennych kategorycznych

telco_raw = pd.get_dummies(data=telco_raw, columns=categorical, drop_first=True)
Uczenie maszynowe w marketingu w Pythonie

Skalowanie cech numerycznych

# 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)
Uczenie maszynowe w marketingu w Pythonie

Łączenie wszystkiego razem

# 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 )
Uczenie maszynowe w marketingu w Pythonie

Czas na praktykę wstępnego przetwarzania danych!

Uczenie maszynowe w marketingu w Pythonie

Preparing Video For Download...