参考
メモ
one hot encodingについて。 Kaggleのラーニングコースを読んでみた。
カテゴリ値の判定にカージナリティを利用
コメントにもやや恣意的な…と書かれてはいたが、 カージナリティが低く、dtypeが objectであるカラムをカテゴリ値としたようだ。
1 | low_cardinality_cols = [cname for cname in candidate_train_predictors.columns if |
カラムのdtype確認
こんな感じで確かめられる。 1
train_predictors.dtypes.sample(10)
結果の例 1
2
3
4
5
6LandContour object
ScreenPorch int64
BsmtFinSF2 int64
SaleType object
BedroomAbvGr int64
(snip)
Pandasのget_dummies
1 | one_hot_encoded_training_predictors = pd.get_dummies(train_predictors) |
学習データとテストデータの列の並びを揃える
学習データとテストデータをそれぞれone hot encodingすると、 それぞれの列の並びが揃わないことがある。 scikit-learnは、列の並びに敏感である。 そこで、DataFrame#alignを用いて並びを揃える。
1 | one_hot_encoded_training_predictors = pd.get_dummies(train_predictors) |
なお、joinオプションはSQLにおけるJOINのルールと同等だと考えれば良い。