Підготовка до моделювання

Machine Learning для маркетингу в Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Зразок даних

telco_raw.head()

Заголовок даних Telecom

Machine Learning для маркетингу в Python

Типи даних

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 для маркетингу в Python

Розділіть категоріальні та числові стовпці

Виділіть ідентифікатор і цільову змінну як списки

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

Виділіть назви категоріальних і числових стовпців у списки

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 для маркетингу в Python

One-hot кодування

Це типовий стовпець категоріального типу

Колір
Red
White
Blue
Red
Machine Learning для маркетингу в Python

Результат one-hot кодування

Ось як це виглядає після one-hot кодування.

Колір Red White Blue
Red ----------> 1 0 0
White ----------> 0 1 0
Blue ----------> 0 0 1
Red ----------> 1 0 0
Machine Learning для маркетингу в Python

One-hot кодування категоріальних змінних

One-hot кодування категоріальних змінних

telco_raw = pd.get_dummies(data=telco_raw, columns=categorical, drop_first=True)
Machine Learning для маркетингу в Python

Масштабування числових ознак

# 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 для маркетингу в Python

Зводимо все докупи

# 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 для маркетингу в Python

Давайте потренуємось у попередній обробці даних!

Machine Learning для маркетингу в Python

Preparing Video For Download...