LoginSignup
0
0

More than 1 year has passed since last update.

Kaggleに入門 Day1 調査とセットアップ

Last updated at Posted at 2022-01-19

自己紹介

  • 情報系の大学の院卒、研究テーマは機械学習ではないが、基本的な数学や統計は一通り分かる
  • 仕事でプログラミングは広く浅くやっている。PythonやPandasも触れる
  • 色々あって10日くらい暇になった(起きている時間を全てKaggleに割けるわけでは無いが)
  • 過去にKaggleに手を出して一瞬で放置した経験あり

10日でKaggleに入門しようと思いました。

Day1 のテーマ

  • 10日間の進め方を決める
  • 現時点でのゴールを決めておく
  • 環境構築して何かコードを動かす

進め方を決める

Kaggleには称号があるらしい。

Novice -> Contributor -> Expert -> Master -> GrandMaster

いくつかの項目(Competitions, Datasets, Notebooks, Discussion)それぞれで上の称号が与えられ、おそらく多くのKaggleマスターみたいな人はCompetitionsでMasterを取っているということのよう。他の項目ももちろん大事だけれど。

称号のイメージとしては、Expertならちゃんとやってる、Masterは凄い人!、GrandMasterは有名人、というイメージっぽい。

称号の条件のまとめがあった。 https://www.currypurin.com/entry/2018/02/21/011316

Masterはちょっと先の目標っぽい。一旦は CompetitionsのExpert をゴールとして目指してみようと思います。

Expertの条件は、Bronze(上位10%)を2回。

Discussionなどを追って実装していけば取れるみたいな記事を見た。結局コンペに参加して色々手を動かしてみるのが早そう。

というわけでActive Competitionsを見てみます。

スクリーンショット 2022-01-19 9.44.33.png

自然言語処理、画像認識、価格変動予測、などなど…

内容も色々あって面白そうですが、

  • 参加者が多い → 汎用性が高そう(専門性が低そう)
  • 期限が近い → 早く結果が出るのでモチベーションに繋がりそう

を条件に調べてみます!

というわけで以下の2つに絞りました。

1つでも良かったけれど2つやれば比較もできるので。途中でどっちかに絞りたいと思ったら1つ切ることもできそう、とも思います
Jigsaw が 20 days to go、Tabular が 13 days to go なのでどちらもすぐ結果が見られそうです。

では早速、Jigsawの方にエントリーしてみます。

まずOverviewを読んでいきます。英語なのでGoogle翻訳を駆使します。

タイトルのRate Severity of Toxic Commentsというのが、直訳すると有毒なコメントの重大度の評価、要するにコメントの迷惑度を評価するみたいなことのようです。

タスクとしては、2つのコメントのうちどちらが有毒かを判定するというもので、人間でも、明らかな場合と意見が分かれる場合がある、みたいなことが書いてあります。

また2つの論文のリンクが貼ってありました。

"Ruddit: Norms of Offensiveness for English Reddit Comments"

"Constructing Interval Variables via Faceted Rasch Measurement and Multitask Deep Learning: a Hate Speech Application"

論文読むのは大変なので後回し。

評価方法

提出ファイルは、コメントデータについて毒性をscoreとして数値化したファイル。
その数値に基づいて、評価用のコメントペアについてアノテーターとの一致度の平均がスコアになります。
なのでスコアは0から1の値を取ります。

同じコメントペアを他のアノテーターが異なる評価をする可能性があるので、おそらく最高スコアの理論値は1よりも少し小さい値になりそうです。

Leaderboardを見てみると、参加チーム1915チームで
1位: 0.909
10位: 0.901
100位: 0.886
1000位: 0.850
となっており、スコアは上の方に固まっている = 基本手法は固まっており、細かいチューニングでスコアが分かれる のかな?と思います。

次にCodeを見てみます。他の参加者が上げているコードが見られます。スコアも書いてあるので、一番スコアが高かったCodeを見てみました。

Jigsaw-Ridge Ensemble + TFIDF + FastText [0.868]

Copy & Edit ボタンがあったので、コピーしてよく分からずにポチポチ実行してみます。ファイル名だけ違ったので直しました。

実行時間が10数分くらい。

Submitボタンもあったので提出してみると、スコア0.867で485位という結果が出ました。

ここからコードを見て更新していって、190位くらいに入れればBronzeメダル獲得!という訳ですね。

ちなみに今の190位は0.884でした。300位くらいまで0.884なのでこの辺りにかなり集中しています。みんなメダルを目指してやっているということでしょう。

余談、ためしにx順位-yスコアでプロットしてみると、

lb0.png
lb1.png

あまりにも0.884の人が多いので何か公開のCodeがあるのかも?とも思いました。

コード動いたことだしDay1はこれくらいにしておきます。

次のステップとしてはこのCodeの処理を理解する、もう少し他のCodeを見る、Discussionを見る、あたりがありそうです。


追記:0.884のCode、2h前くらいに出てたのがあった。
very simple code with score 0.884
そのまま動かしたら142位になった。

0
0
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
0
0