Подготовка к моделированию

Машинное обучение для маркетинга на Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Пример данных

telco_raw.head()

Заголовок данных телеком

Машинное обучение для маркетинга на 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
Машинное обучение для маркетинга на 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]
Машинное обучение для маркетинга на Python

Унитарное кодирование

Типичный пример столбца с категориальными данными

Цвет
Красный
Белый
Синий
Красный
Машинное обучение для маркетинга на Python

Результат унитарного кодирования

Так выглядит результат после применения унитарного кодирования.

Цвет Красный Белый Синий
Красный ----------> 1 0 0
Белый ----------> 0 1 0
Синий ----------> 0 0 1
Красный ----------> 1 0 0
Машинное обучение для маркетинга на Python

Унитарное кодирование категориальных переменных

Унитарное кодирование категориальных переменных

telco_raw = pd.get_dummies(data=telco_raw, columns=categorical, drop_first=True)
Машинное обучение для маркетинга на 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)
Машинное обучение для маркетинга на 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 )
Машинное обучение для маркетинга на Python

Давайте потренируемся в предобработке данных!

Машинное обучение для маркетинга на Python

Preparing Video For Download...