Kaggle で ML/AI に関する組織のスキルアップ

1. はじめに

47566e1490c16443.png

最終更新日: 2024 年 5 月 10 日

Kaggle とは

Kaggle は GoogleML コミュニティは、あらゆるレベルのデータ サイエンスと ML の愛好家が最新の手法とテクノロジーでレベルアップできる究極のプラットフォームです。データセット、ノートブック、事前トレーニング済みモデルの膨大なリポジトリで、次のプロジェクトを開始しましょう。コンテストに参加したり、コースで学んだり、世界中から集まった 1,800 万人以上のユーザーで構成される多様なコミュニティと交流したりできます。Kaggle は初心者でも熟練したプロでも、スキルに磨きをかけ、先手を打って最先端のプロジェクトで共同作業できる場です。

作成するアプリの概要

この Codelab では、Kaggle コンペを作成、設定、起動します。競合他社の実情を解説し、魅力的なコンテストを開催するためのベスト プラクティスを学ぶことができます。

学習内容

  • 主催者側から Kaggle コンペティションの作成方法と管理方法について理解する
  • 探索から提出まで、競合他社のエクスペリエンスをナビゲート
  • 魅力的なコンテストを実施するためのベスト プラクティスを学ぶ

この Codelab では、コンペティションの迅速な作成に重点を置き、Kaggle の増え続けるコンペティション ライブラリを活用します。

必要なもの

  • 最新のウェブブラウザ
  • Python の基本的な知識

2. 設定方法

Kaggle アカウントを作成する

Kaggle のウェブサイト(https://www.kaggle.com/)にアクセスし、[Register] をクリックします。無料アカウントを作成できます。

アカウントを確認する

  1. ページの右上にあるプロフィール画像をクリックします。
  2. [プロフィール] をクリックします。
  3. [設定] をクリックします。プロフィールコンテンツの右側にある
  4. [電話による確認] の下手順に沿ってアカウントを確認します

3. 最初の競合相手を作成する

AI 生成の競争用テンプレートのご紹介

Kaggle の新機能である「AI 生成のコンペティション」を使用すると、ML のコンテストをすばやく簡単に開催できます。AI を活用して、個人情報を含めずに既存のデータセットの統計的特性を模倣した合成データセットを生成します。

仕組みは次のとおりです。

  1. テンプレートを選択: さまざまな ML タスク(分類、回帰など)に基づいて、テンプレートのリストから選択します。
  2. AI がデータセットを生成する: Kaggle の AI が、選択したテンプレートに基づいて、競合商品用の新しいデータセットを作成します。このデータセットは元のデータセットと類似していますが、特徴のサブセットを使用しており、特徴の分布がわずかに異なります。
  3. 競合をカスタマイズする: 競合の名前、説明、タイムラインなどの基本情報を入力します。競合他社のプライバシー設定を選択することもできます。
  4. 運用開始: 詳細情報が完成し、運用開始が決まったら、コンペティションの運用を始める準備をします。

この機能により、コンテストの作成プロセスが合理化され、より多くのユーザーがアクセスできるようになり、ユーザーはデータセットの準備ではなく機械学習の側面に集中できるようになります。

コンペを作成する

https://www.kaggle.com/competitions/new に移動し、[New AI Generated Competition] を選択します

2629bf77a282a46c.png

[カニ年齢データセットによる回帰] を選択します。競争。

コンテストの詳細

2dd2228b9d686a6e.png

わかりやすい名前とサブタイトルを入力します。たとえば、「<Your Names>'s Test Crab Competition」を使用できます。「最初の競争を作成して仕組みを確認する」と指定します。コンテストの URL はタイトルに基づいて自動的に入力されます。

公開設定とアクセス

次に、競合相手の公開設定とアクセスを設定する必要があります。

5c7dcae412ddd574.png

公開設定

  • 公開: 競合は Kaggle のすべてのユーザーが閲覧できます。検索結果にイベントが表示されるので、関心のあるユーザーであれば誰でも参加できます。
  • 非公開: 競合は非公開です。このチャットは検索には表示されません。また、具体的に招待したユーザーのみが参加できます。

参加できるユーザー

  • 全員: これはオープンドア ポリシーのようなものです。Kaggle のユーザーは誰でもコンテストに参加できます。
  • リンクを知っているユーザーのみ: 制限付きの機能です。特別なリンクが生成され、そのリンクを知っているユーザーのみが参加できます。
  • 制限されたメーリング リスト: これは最も制御されたオプションです。特定のメールアドレスまたはドメイン(@[学校名].edu など)のリストを指定すると、指定したアドレスを持つユーザーのみ参加できます。

[ノートブックとモデルを有効にする] の設定については、後ほど詳しく説明します。今はオンになっていることを確認してください。この例では、これらの設定を [非公開] と [リンクを知っているユーザーのみ] に設定します。

利用規約を読んで同意し、[コンペティションを作成] をクリックします。

4. 競合状況の把握と設定

舞台裏では、独自のデータセットを使用してまったく新しいコンテストが開催されています。競合設定を簡単に確認しましょう。

[ホスト] タブ

[ホスト] タブには、ホストとして競合相手を適切に設定するために必要なものがすべて含まれています。具体的には、ページの右側にあるページリストを確認してください。

bcedd6768cc4f32c.png

基本情報

このセクションには、次の情報が含まれます。

  • 全般
  • プライバシー、アクセス、リソース
  • タイムライン
  • スコアとチーム

コンペティションの開始時に、全般とプライバシーのセクションについて説明しました。

タイムライン

コンペの終了日は、タイムゾーンに応じて異なります。

7141f4aea90bccb0.png

スコアとチーム

スコアとチーム セクションでは、チームに参加できる人数、1 日あたりの提出回数、最終評価に必要な提出物の数を管理できます。

5efb6387612db941.png

画像

画像を使用すると、競合他社に合わせてバナーとサムネイルをカスタマイズできます。これは、コンテストのホームページだけでなく、コンテストの掲載情報にも影響します。

6dfd442376a1c702.png

ホスト

ここでは、他の Kaggle ユーザーをコンペの主催者として追加できます。他のホストは、競合相手への完全アクセス権(起動を含む)が可能です。

8f8c90eb6baa7747.png

評価指標

[評価指標] タブは競争の中心です。コンテストをゼロから作成する場合は、どの評価(またはスコア)指標を使用するかを慎重に検討し、ソリューション ファイルをアップロードし、公開/非公開テスト分割を定義して、サンプルを提出する必要があります。ただし、生成されたコンペティションを使用したため、何もする必要はありません。

スコア指標

これにより、提出物をソリューション ファイルと比較して評価する方法が決まります。各指標にはドキュメントと実際のコードが用意されています。

ソリューション ファイル

生成されたコンペティションを使用しているため、このファイルはコンペティションに固有のものです。

89fa1f42d177505a.png

ソリューション サンプリングでは、コンテスト中に提出物のスコアリングに使用する解答ファイルの量(公開リーダーボード)と、最終的なリーダーボードの決定に使用する行数を調整できます。コンテスト中、ユーザーはスコアリングされた非公開投稿の設定に基づいて、最終的なリーダーボード(ここでは「非公開リーダーボード」)に使用する提出物を選択できます。

このプロセスにより、提出物の過剰適合や洪水によって競合他社が報酬を得ることがなくなります。

サンドボックスへの送信

これにより、競合のホストはスコアリングが想定どおりに機能することを確認できます。また、「ベンチマーク」を設定できます。競合他社と比較するための提出物の数を示しています。これらのベンチマークの提出はリーダーボードに表示されます。

チームと提出物

大会中は、ホストがすべてのスコアをダウンロードしたり、チームを管理したりできます。コンテストが始まる前は空です。

Launch Checklist

これについては次のセクションで説明します。

5. 競合他社の立ち上げ

50b03df072c02e6a.png

コンテストのページ上部で [リリース チェックリスト] をクリック] ボタンを離します。

Launch Checklist

「リリース チェックリスト」には、コンペティションを開始する前に必要な手順が記載されています。すでにコンペティションのテンプレートを使って作成しているので、ほとんどのステップはすでに完了しています。残っているタスクは、期限の設定と競争ルールの更新の 2 つのみです。

938b9ed7bc4e0597.png

Set Deadline(期限設定)

まず、[Set Deadline] の横にある矢印をクリックします。通常、コンテストは数か月以上続きます。コンペティションの最長期間は 1 年間です。

ルールの編集

リリース前に、デフォルト テンプレートから競合ルールを更新する必要があります。クラスやグループを対象にコンテストを実施する場合は、ここに期待される成果を記載することをおすすめします。

リリース

リリース準備が整いました。さあ、競争を始めましょう!これで競合他社が参加する準備が整いました。

6. 競合他社のエクスペリエンス

競合他社を立ち上げたところで、競合他社がどうなっているかを見てみましょう。コンテストへの参加と応募の方法については、後ほどご説明します。この目的では、Google IO デモ コンペティション(https://www.kaggle.com/competitions/google-io-demo-competition)にご参加ください。

コンテストへの参加

コンテストのホームページに移動したら、[コンテストに参加] をクリックします。] ボタンをクリックし、ルールを読んで承認します。

最初の送信を行う

コードタブに移動し、[新しいノートブック] をクリックします。ノートブックが開き、コンペに提出できます。

まず、トレーニング データとテストデータを読み取ります。

Ⰳ# テストデータを読み取り、トレーニングする

train = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')

test = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')

データを見てみましょう。

Ⰳ# データを確認する

train.head()

トレーニング用のデータを準備しましょう。この場合、[性別] は数値ではないため除外します。(ヒント: これを含めると、モデルのパフォーマンスが向上するはずです)。

Ⰳ # テストデータから結果をドロップします

data = train.drop(columns=[‘Age', ‘Sex'])

回答 = train[‘年齢']

次に、モデルを作成します。今回はランダム フォレスト モデルを使用します。

Ⰳ# モデルのインポート

sklearn.model_selection import train_test_split から

sklearn.ensemble import RandomForestRegressor から

sklearn.metrics インポート平均から

モデル = RandomForestRegressor()

# モデルをトレーニングする

model.fit(data, answers)

提出物を作成する:

Ⰳpredictions = model.predict(test.drop(columns=[‘性別']))

submission = pd.DataFrame({‘id&#39;: test[‘id&#39;], ‘Age&#39;: predictions})

submit.to_csv(‘submission.csv', index=False)

次に、[コンペティションに送信] を選択して、コンペティションに提出できます。をクリックします。

1cf17449cae53abe.png

競争を活発にするためのヒント

  1. 基本的な提出を行うためのスターター ノートブックを必ず含めてください。
  2. コンペの早い段階でディスカッションの利用やノートブックの共有を奨励する
  3. どうぞお楽しみください!