【入門】Kaggle本でデータ分析の技術を勉強する【第1章】

Python

冬休みですね。せっかくの連休、何を学ぼうかと考えながら本屋を散策していたところ、『Kaggleで勝つデータ分析の技術』という本が目に入ってきました。

Kaggleなどのデータ分析コンペでは、実際のデータを扱うため、機械学習の解説書にはあまり載っていないような手法やテクニックが数多く活用されています。これらを理解し自身で使えるようにしておくことはコンペだけでなく、実務でのモデル構築において非常に役に立ちます。特徴量の作り方,バリデーション,パラメータチューニングなどについて,一般的な書籍ではあまり言及されない暗黙知やポイントについて記述しています。

Kaggleは友人の間では何年も前から流行っていたのですが、私は興味が持てず、ずっとスルーしてました。

しかし、最近は職場でも機械学習案件に強い人はKaggleをやっている印象で、彼らと仕事をする中で、このままだと取り残されてしまうという危機感を感じ、この本を手に取りました。

冬休み中にどこまで進められるか分かりませんが、この本でKaggleで使われる手法や考え方を学んでいこうと思います。

今日は導入と第1章で印象に残った部分の引用とメモです。

それと、この本の学びをアウトプットするためにGitHubにリポジトリを用意したので、それも貼っておきます。

はじめに

この本の記述内容は2019年8月の状況に基づいており、

予測対象やモデルの評価指標などの問題設定が明確に与えられた中で、精度の高いモデルを作るためにはどうしたらよいか、何に気をつけたらよいか

という観点で執筆されているそうです。

ただし、テーブルデータを対象とするため、画像、音声、自然言語などのデータを扱うテクニック の詳細は取り扱っていません。

サンプルコードは以下で公開されています。

ghmagazine/kagglebook
Contribute to ghmagazine/kagglebook development by creating an account on GitHub.

第1章

与えられたデータの列そのままの場合には変数や説明変数と呼び、加工を行うなどしてモデルへの入力とする場合には特徴量と呼ぶことが多い

→ 初めて「特徴量を作る」と聞いたときは、「特徴量って作るものなの?」と疑問に思ったものです。

 

チームメンバーごとに別々の考え方に基づいて特徴量やモデルを作っている場合には、各メンバーが作ったモデルの予測値の平均をとるなどの単純なアンサンブルを行うだけでもスコアが伸びることも多い

→ 業務でもチーム開発のときはこれを期待して皆でモデルを作りたいわけですが、皆忙しくて結局一人でやることになるという・・・。

 

より良い予測を行うには、値を変換したり集計したりして、現状のデータのままでは読みとりづらい有用な情報を特徴量として与えることが必要

→ 生データに最低限の前処理だけしてGBDTに突っ込んでるだけではダメですね・・・。

 

accuracyは小さな改善をとらえづらいので、合わせてloglossという指標も出力する

→ 恥ずかしながら、今までaccuracyなど単一の評価指標ばかり見てました。今後はlogloss (cross entroy)も見ます。

 

コンペにおける試行錯誤のサイクルは以下の通り。

1. 特徴量を作成する

2. 作成した特徴量をそれまでの特徴量に加え、モデルの学習を行う

3. 予測が改善したかどうかを、バリデーションで評価する

 

あとは、

  • GBDTとロジスティック回帰の単純なアンサンブルでも性能が向上する可能性がある
  • データの件数が少ないと、効果的な特徴量を作ってもブレによって精度が悪くなることがある

など、知識としては知ってるけど、いざ実務に取り組んでいると頭から消えてしまいがちな話など、勉強になりました。

実装

ローカル環境を汚さずにKaggle本の実装を倣うため、Dockerfileを書きました。(殆どサンプルコードのRequirementsを列挙しただけですが・・・。)

また、以下のリポジトリでサンプルコードをJupyter notebook上で一部注釈を付けながらトレースして学んでいこうと思っています。

mimosom/study
Contribute to mimosom/study development by creating an account on GitHub.

 

Kaggleなどのデータ分析コンペでは、実際のデータを扱うため、機械学習の解説書にはあまり載っていないような手法やテクニックが数多く活用されています。これらを理解し自身で使えるようにしておくことはコンペだけでなく、実務でのモデル構築において非常に役に立ちます。特徴量の作り方,バリデーション,パラメータチューニングなどについて,一般的な書籍ではあまり言及されない暗黙知やポイントについて記述しています。

コメント