Skip to content

code & solution of Kaggle American Express - Default Prediction competition

Notifications You must be signed in to change notification settings

nodematerial/Kaggle_amex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kaggle_amex

このリポジトリは、Kaggle American Express - Default Prediction コンペティションで使用したコードの置き場です。

設計において工夫した点

特徴量生成コードとモデル訓練用コードを分離し、訓練の際に使用する特徴量をconfig.ymlから指定する方式をとることで、使いやすさの向上とデータロードの効率化を図った。

使用方法

本コンペでは、特徴量生成に膨大な時間を要するため、特徴量生成コードと学習用コードと推論用コードを分離している。

特徴量生成部分

script/feature_engineering 内に推論用コードを記述する。具体的には

  1. 同階層内で新しい.pyファイルを作成する
  2. 同ファイルでfeature_engineering.py/feature_engineering クラスを継承した新規クラスを作成する
  3. 継承先の create_features メソッド内で特徴量生成のためのロジックを記述し、保存したいデータフレームとカラムを返却する
  4. main() 関数内で新規クラスのインスタンスを作成し、get_dataset(), run()メソッドを呼び出す
  5. if name == 'main': main() などとして、ファイル内でmain()を呼び出す
  6. 同ファイルを実行する とすることで、data/feature_groups/{method_name}/ にカラムごとの特徴量が生成される。

学習部分

script/{model_name}/exp{n}/train.py に学習用コードを記述する。特徴量はカラムごとに保存されているので、使用する特徴量を選択し列方向にマージする必要がある。 本リポジトリでの学習用コードでは、特徴量をリストにappendした後にpandas.DataFrameに変換する。さらに、confing.ymlに使用する特徴量もしくは特徴量グループを 指定することができるため、高速に実験を行うことができた。また、Optunaによる最適化を行うための設定を追加した。

推論部分

学習部分で使用したデータに対応する推論データを用いて推論を行うことができる。

About

code & solution of Kaggle American Express - Default Prediction competition

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •