kaggleの雑記

【超雑記】NFL Big Data Bowl 1

本記事について

本記事はkaggleに挑戦している時のメモ書き、殴り書きでありとてもではありませんが体系的にまとめたものではございません。

挑戦するコンペは

https://www.kaggle.com/c/nfl-big-data-bowl-2020

NFL Big Data Bowlに挑戦します。3回目の挑戦です。

今まで誰かのあげているコードをForkして使うことが多かったのですが、今回は1行ずつ自分で作業をしていこうと思います。またKaggleで勝つデータ分析の技術を参考にして、理解しながら挑戦していきます。

Notebookを1から作る

そういえばよく考えたらkaggleでNotebookを一から作ったことはなかったので、一から作成しました。

トップページのヘッダー下にあるNotebooks>New Notebooks>「使用言語・code or notebook・GPU使用するか・google連携するか」>create

これでNotebookが完成します。

左上でのFileの中からAdd or Upload dataを選択し、Competition Dataを選びます。これで参加中のコンテストのデータを取得できるNotebookができます。

first kaglle notebook

これでいつまで他人のNotebookに頼らずに自分で1から始められるぞ。

参考にするコード

https://www.kaggle.com/enzoamp/nfl-lightgbm

今回はこちらのコードを参考に進めていこうと思います。

このコードに注目した理由は

  1. いま私がlightgbmを極めたい
  2. 特徴量生成関数とトレーニングのコードに分かれており、可読性が高い

からです。

コードを追いかける

# IMPORTS 
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import KFold
from kaggle.competitions import nflrush
import lightgbm as lgb

env = nflrush.make_env()
iter_test = env.iter_test()

kaggle.competitions のnflushって何?

testデータのDataFrameと提出用csvのサンプルが手に入るコードです。

https://www.kaggle.com/dster/nfl-big-data-bowl-official-starter-notebook

詳細は、starter notebookに書かれていました。最初のチュートリアルを確認する癖をつけたいと思います。

outcomes

outcomes = train[['GameId','PlayId','Yards']].drop_duplicates()

今回はYardsが目的変数になるようです。

create_features

特徴量生成のコードを確認します。(別記事にまとめました。全6記事です。)

kaggleのコンペから方向と距離についての特徴量生成を学ぶ特徴量生成のコードを読み解く、その1 https://www.kaggle.com/enzoamp/nfl-lightgbm こ...
kaggleのNFLコンペから、選手の行動・方向に関する特徴量生成を学ぶ特徴量生成のコードを読み解く、その2 https://www.kaggle.com/enzoamp/nfl-lightgbm こ...
kaggleのNFLコンペから、ランナーとその他の選手の切り分けた特徴量生成を学ぶ特徴量生成のコードを読み解く、その3 https://www.kaggle.com/enzoamp/nfl-lightgbm こ...
kaggleからpandasで縦のデータから統計データを取得する方法を学ぶ特徴量生成のコードを読み解く、その4 https://www.kaggle.com/enzoamp/nfl-lightgbm こ...
【kaggle】NFL Big Data Bowl のlightgbmを利用したコードの特徴量生成を読み解く、その5特徴量生成のコードを読み解く、その5 https://www.kaggle.com/enzoamp/nfl-lightgbm こ...
kaggleのNFLコンペから学ぶ、ポジションの欠損値の埋め方【事例】特徴量生成のコードを読み解く、その6 https://www.kaggle.com/enzoamp/nfl-lightgbm こ...

 

ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki