LoginSignup
2
4

More than 5 years have passed since last update.

[Survey] Kaggle - Instacart 9位解法まとめ

Last updated at Posted at 2017-09-27

Kaggle - Instacart Market Basket Analysis1の1位解法2の調査記事です.

Title: 9th place Approach
Name: KazAnova
Kaggle Discussion: https://www.kaggle.com/c/instacart-market-basket-analysis/discussion/38100

特徴量

下記の300以上の特徴量を利用

  • sh1ng feature3
  • arboretum feature4
  • 現時点の連続購入記録(streak, リーク情報)
  • 異なる期間(直近15日,30日など)でのitems/aisle/depsごとの購入回数
  • 時間的な特徴量(例: 最後に買った時刻)
  • 様々なカテゴリ特徴量(例: departments, products, aislesなど)
  • 新商品を買うユーザーの傾向(例: 各注文ごとの新商品の購入確率)

備考

  • F1最大化5(LBで0.005改善)

利用カーネル

  • LightGBMでの予測6
  • XGBoostでの予測7

LightGBMで利用したパラメータ

LightgbmClassifier 
boosting:dart 
num_leaves:22 
num_iterations:3000
max_drop:5
drop_rate:0.01
categorical_feature:0,1,2
learning_rate:0.12
threads:12
max_depth:7
feature_fraction:0.7
min_data_in_leaf:10
bagging_fraction:0.85
lambda_l1:1
lambda_l2:0.01
bagging_freq:1
seed:1
verbose:false

categorical_feature:0,1,2はそれぞれproduct,aisle,departementの意.

モデル

StackNet8でモデルをStacking(ただしあんまり改善されなかった)

  • LightGBM
  • H2O
  • KerasのNN

改善につながらなかった項目

  • product/aisle/departmentごとのモデル
  • 強調フィルタリング
  • 商品の説明文の意味解析

最終のMetaモデル

models = Sequential()
models.add(Dense(output_dim=1024, input_dim=input_d, init='lecun_uniform')) 
models.add(Activation('relu')) 
models.add(BatchNormalization())    
models.add(Dropout(0.5))  
models.add(Dense(512, activation='relu',init='lecun_uniform'))
models.add(Activation('relu')) 
models.add(BatchNormalization())    
models.add(Dropout(0.4))  
models.add(Dense(2, init='lecun_uniform'))
models.add(Activation('softmax'))    
opt = optimizers.Adam(lr=0.01)
models.compile(loss='binary_crossentropy', optimizer=opt)

References

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4