モデリングの準備

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で学ぶマーケティングのための機械学習

ワンホットエンコーディング

これは典型的なカテゴリ型の列です

Red
White
Blue
Red
Pythonで学ぶマーケティングのための機械学習

ワンホットエンコーディングの結果

ワンホットエンコーディング後はこのようになります。

Red White Blue
Red ----------> 1 0 0
White ----------> 0 1 0
Blue ----------> 0 0 1
Red ----------> 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...