Kaggleで機械学習してみる【初級データ分析エンジニア向け】

Kaggleで機械学習してみる【初級データ分析エンジニア向け】

本記事では下記の2種目に取り組み、機械学習の各工程を体験します。

  • 「文章同士の関係を3カテゴリに分類する自然言語推論」
  • 「ひらがなのくずし字認識」

「Kaggle」(カグル)とは、データ分析プラットフォームで エキスパートの集まる大規模なコミュニティが存在しています。 データセットやブラウザから実行できる計算資源などが豊富に用意されているため、 手軽に機械学習を学ぶ題材として最適です。 手軽に始められますが奥は深いので、 極めればデータ分析エンジニアとして強いスキルになるはずです。

さらには、ベテランの参加者が常日ごろから行っているスコアアップの技術を試し、 精度を上げるためにどのような試行錯誤をしているのか確認して【スコアの上げ方】を考えます。  

 

機械学習の各工程

  • 機械学習の前処理
  • モデルの構築および学習
  • 目標データの推論

スコアの上げ方

Kaggleとは

Kaggleとは世界最大の機械学習コンペのプラットフォームです。 下記の項目があります。

項目 内容
コンペティション ホスト(企業や大 学)が提供するお題とデータに対して、参加者 がモデルの精度を競い合っています。
データセット 5万を超えるさまざまなデータセットと、それに付随するNotebook1が公開されています。
コース Pythonの基礎からデータの可視化、深層学習まで簡序立てて解説された記事が用意されています。

本記事ではこのうちコンペティション(以 下コンペ)について解説していきます。 Kaggleについて説明する前に、Kaggleに参加するメリットを見ておきます。

  • 上位に入れば、実績としてアピールができる
  • Kaggleを通してほかのデータサイエンティストとのつながりが作れる
  • ほかの参加者のコードを読むことができるので、初心者でも参加しやすい
  • さまざまな工夫を試した結果がスコアに反映されて、順位が上がっていくのが楽しい

たくさんメリットがありますね。この記事を読んで、Kaggleに取り組みましょう。

注1) Jupyler Notebookに類似していますが、Kaggle独自のも のです。使い勝手はJupyter Notebookと同様です。

 

コンペについて

Kaggleでは、以下のようなさまざまなタイブのコンペがあります。

コンペの種類

タイプ 詳細
Featured Kaggleのコンペといえばこれです。おもにビジネスに関する難しい課題を機械学習で解決するためのコンペです。賞金とメダルが得られるため多くの人が参加しています。
Research こちらもKaggleでよくあるコンペです。Featuredより研究目的のコンペが多いのが特徴です。賞金やメダルを得られるコンペもあります。
Getting Started 機械学習を始めてみたいという人用に用意されている入門用コンペ。最も有名な「Titanie -Machine Learning from Disaster」*2 のデータセットもこの形式。たくさんの解説Notebookが用意されているので、それを参考にして学ぶことができます。ただし、賞金やメダルは得ることができません。
Playground 入門より一歩上の難易度を楽しむためのコンペ。少額の賞金を得られることもあります。

メダルというのは上位数%に入った場合に与えられるものであり、 これによってGrandmasterやMasterという称号が与えられるので これを目的にコンペに参加する人も多くいます。

コンペの形式

Kaggleのコンペにおける提出方法には、いくつかの形式があります。

  • Simple Competitions:何かしらの方法で提出ファイルを作成してKaggleにアップロードする形式です
  • Code Competitions:最近よく使われる形式で、Notebookで提出ファイルを作成する形式です。

こちらのほうが主流になった理由としては、 すべてのユーザーが推論を同じ条件で行うため、 よりバランスの取れたコンペになること、 推論の時間が制限されているため比較的シンプルなモデルになることの2点がありまする。

#2) https://www.kaggle.com/c/titanic

 

【1】Kaggleへのエントリーについて

登録からSubmitまでブラウザ上で完結します。

 

【2】Kaggleコンペ【自然言語処理】の実施①

データの前処理 → 学習 → 推論の流れ

 

【3】Kaggleコンペ【自然言語処理】の実施②

モデル変更でスコアをアップさせる

 

【4】Kaggleコンペ【くずし字認識】の実施①

パラメータチューニングの詳細を確認する

 

【5】Kaggleコンペ【くずし字認識】の実施②

さらなるスコアアップのために上級データ分析エンジニアがやっていること