Giter Site home page Giter Site logo

kaggle_dsb's Introduction

kaggle_dsb

Pipeline

pipeline

ローカルでの実行

PJのrootディレクトリにいると仮定すると、

python3 scripts/run.py

でデータ読み込み〜動作します。

引数について

--mode

  • prd : オリジナルのcsvファイルを読み込む(デフォルト)

  • dev : オリジナルのcsvファイルから100kのみ読み込む(検証モード)

  • pkl : オリジナルのcsvファイルをpkl変換したデータを読み込む。ローカルで全件動作確認する場合はこちらが推奨

--create_features

  • True : 特徴量生成処理を実行する(デフォルト)

  • False : 特徴量生成処理を実行しない。すでに特徴量生成が終了しており、モデルのパラメータチューニングなどを行う際に使用する

--model_type

  • lbg : LightGBMでの学習を行う(デフォルト)

  • cb : CatBoostでの学習を行う

  • nn : MLPでの学習を行う

  • all : LightGBM、CatBoost、MLPで学習を行い、最後にブレンドしたsubを作成する

--is_kernel

  • True : kaggleのカーネル実行

  • False : ローカル実行(デフォルト)

テスト実行

スクリプトの動作確認時などは以下のコマンドで高速で実行確認できます。

python3 scripts/run.py --mode='dev'

参考:python-fire

pklファイル(全データ)での読み込み実行

  • 通常で実行するよりデータの読み込みが高速に行えます
python3 scripts/run.py --mode='pkl'

csvファイル(全データ)での読み込み実行(デフォルトの動作)

python3 scripts/run.py --mode='prd'

kaggleへのサブミット

sh scripts/make_submission.sh

を実行すると、kaggle notebook環境で実行可能なスクリプトが生成されます。(for_script_submission.py) コピペで動くところまで確認済みです。

※コード構成にめちゃくちゃ依存しているので、コードいじっているうちに動かなくなる可能性はあります汗

run.py関連の説明

model.py

  • loghtGBMやxgboost、scikit-learnの各モデルをラップしたクラス。学習や予測を行う。

  • このクラスを継承してモデルスクリプトを作成することで、インターフェースの差分を吸収(e.g. model_lgb.py

runner.py

  • CV含めて学習・予測の一連の流れを行うクラス。

util.py

  • ファイル入出力

  • ログの出力・表示

  • 計算結果の出力・表示

kaggle_dsb's People

Contributors

takapy0210 avatar shyaginuma avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

kaggle_dsb's Issues

LightGBMの特徴量可視化ファイルをTOP100のみ出力するように修正する

現在は全ての特徴量に対して画像ファイルに出力しているが、出力に時間がかかるため実験速度が落ちてしまう。
TOP100の特徴量だけ画像出力し、残りはcsvファイルにて全件出力するように修正する。

また、splitの出力はあまり意味がないので、コメントアウトする。

Kaggleのkernelでtqdmのログが出ないようにする

get_train_and_test メソッドに verbose 引数を追加して、True(デフォルト) の場合は進捗バーを出力し、False の場合は表示しない。

make_submission.sh にて、kaggle提出用コードに変換する際に TrueFalse に置換する。

foldごとのscore計算を修正する

現在、CVの各foldごとのscore計算を qwk 関数を用いて計算しているが、関数実行前に予測値の変換を行っていないため、LightGBMのログなどと乖離した値がscoreとして出力されてしまっている。

正しく変換したのち、score計算を実行するように修正する。

  • LightGBMのログMetrics
training's rmse: 0.816605       training's cappa: 0.755143      valid_1's rmse: 0.967704        valid_1's cappa: 0.616568
training's rmse: 0.801463       training's cappa: 0.766302      valid_1's rmse: 0.981381        valid_1's cappa: 0.593621
training's rmse: 0.745162       training's cappa: 0.808769      valid_1's rmse: 0.968121        valid_1's cappa: 0.605381
training's rmse: 0.797177       training's cappa: 0.769689      valid_1's rmse: 0.997192        valid_1's cappa: 0.59334
training's rmse: 0.803019       training's cappa: 0.764869      valid_1's rmse: 0.97122 valid_1's cappa: 0.619453
  • CVごとのscore計算
[2020-01-06 21:00:38] - lgb_0106_2055 fold 0 - start training
[2020-01-06 21:00:38] - lgb_0106_2055 fold 0 - end training - score 0.4767861778852178
[2020-01-06 21:00:38] - lgb_0106_2055 fold 1 - start training
[2020-01-06 21:01:20] - lgb_0106_2055 fold 1 - end training - score 0.4687060363768907
[2020-01-06 21:01:20] - lgb_0106_2055 fold 2 - start training
[2020-01-06 21:02:04] - lgb_0106_2055 fold 2 - end training - score 0.47542024561127805
[2020-01-06 21:02:04] - lgb_0106_2055 fold 3 - start training
[2020-01-06 21:02:44] - lgb_0106_2055 fold 3 - end training - score 0.4614482601572223
[2020-01-06 21:02:44] - lgb_0106_2055 fold 4 - start training
[2020-01-06 21:03:25] - lgb_0106_2055 fold 4 - end training - score 0.4926674984073748
[2020-01-06 21:03:25] - lgb_0106_2055 - end training cv - score 0.47500564368759673

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.