縮放與轉換新資料

Feature Engineering for Machine Learning in Python

Robet O'Callaghan

Director of Data Science, Ordergroove

重用訓練用縮放器

scaler = StandardScaler()

scaler.fit(train[['col']])

train['scaled_col'] = scaler.transform(train[['col']])

# FIT SOME MODEL
# ....

test = pd.read_csv('test_csv')

test['scaled_col'] = scaler.transform(test[['col']])

Feature Engineering for Machine Learning in Python

將訓練期轉換留待重用

train_mean = train[['col']].mean()
train_std = train[['col']].std()

cut_off = train_std * 3
train_lower = train_mean - cut_off
train_upper = train_mean + cut_off

# Subset train data

test = pd.read_csv('test_csv')

# Subset test data
test = test[(test[['col']] < train_upper) & 
              (test[['col']] > train_lower)]

Feature Engineering for Machine Learning in Python

為何只用訓練資料?

 

資料外洩:在評估模型效能時,使用了當下實際無法取得的資料。

Feature Engineering for Machine Learning in Python

避免資料外洩!

Feature Engineering for Machine Learning in Python

Preparing Video For Download...