コース02-機械学習の概要

029.タイタニック入門(Getting Started With Titanic)[Kaggle日本語訳]

  • LINEで送る

941 views

     

機械学習入門コースの最後の演習では、Kaggleコンテストに提出する方法を学びました。 ただし、部分的に完成したコードを含むノートブックが提供されたため、一部の作業はすでに完了しています。

このチュートリアルでは、Kaggleコンテストへの提出物の作成を開始するために(最初から!)使用できる完全なワークフローについて説明します。 例としてタイタニックの競争を使用します。

パート1:始めましょう

このセクションでは、コンテストの詳細を学び、最初の提出を行います。

コンテストに参加してください!

最初にすることは、コンテストに参加することです! まだ行っていない場合は、コンテストページで新しいウィンドウを開き、[コンテストに参加]ボタンをクリックします。 ([コンテストに参加]ボタンの代わりに[予測を送信]ボタンが表示されている場合は、すでにコンテストに参加しているので、再度参加する必要はありません。)

これにより、ルールの承認ページに移動します。 参加するには、競技規則に同意する必要があります。 これらのルールは、1日に作成できる提出の数、最大チームサイズ、およびその他のコンテスト固有の詳細を管理します。 次に、「理解して受け入れる」をクリックして、競技規則を遵守することを示します。

挑戦

競争は単純です。タイタニック号の乗客データ(名前、年齢、チケットの価格など)を使用して、誰が生き残り、誰が死ぬかを予測してください。

データ

コンテストデータを確認するには、コンテストページの上部にある[データ]タブをクリックします。 次に、下にスクロールしてファイルのリストを見つけます。

データには、(1)train.csv、(2)test.csv、および(3)gender_submission.csvの3つのファイルがあります。

(1)train.csv

train.csvには、搭乗している乗客のサブセットの詳細が含まれています(正確には、891人の乗客-各乗客はテーブル内の異なる行を取得します)。 このデータを調査するには、[データソース]列(画面の左側)の下にあるファイルの名前をクリックします。 これを実行すると、すべての列名(およびそれらに含まれる内容の簡単な説明)が画面の右側の[列]見出しの下に一覧表示されます。

すべてのデータを同じウィンドウで表示できます。

2番目の列(「Survived」)の値を使用して、各乗客が生き残ったかどうかを判断できます。

  • 「1」の場合、乗客は生き残った。
  • 「0」の場合、乗客は死亡しました。

たとえば、train.csvにリストされている最初の乗客は、オーウェンハリスブラウン氏です。 彼がタイタニックで亡くなったとき、彼は22歳でした。

(2)test.csv

train.csvにあるパターンを使用して、(test.csvにある)他の418人の乗客が生き残ったかどうかを予測する必要があります。

test.csv([データソース]列の下)をクリックして、その内容を確認します。 test.csvには「Survived」列がないことに注意してください。この情報は非表示になっています。これらの非表示の値をどれだけうまく予測できるかによって、コンテストでのスコアがどれだけ高くなるかが決まります。

(3) gender_submission.cs

予測を構造化する方法を示す例として、gender_submission.csvファイルが提供されています。 それは、すべての女性の乗客が生き残り、すべての男性の乗客が死亡したと予測しています。 生存に関するあなたの仮説はおそらく異なり、それは異なる提出ファイルにつながるでしょう。 ただし、このファイルと同様に、提出物には次のものが必要です。

  • test.csvの各乗客のIDを含む「PassengerId」列。
  • 「Survived」列(作成します!)には、乗客が生き残ったと思われる行に「1」が表示され、乗客が死亡したと予測される行に「0」が表示されます。

あなたの最初の提出

ベンチマークとして、gender_submission.csvファイルをダウンロードしてコンテストに提出します。 ファイル名の右側にあるダウンロードリンクをクリックすることから始めます。

これにより、ファイルがコンピューターにダウンロードされます。 次に:

  • コンテストページ右上の青い「予測送信」ボタンをクリックしてください。 (このボタンは、[コンテストに参加]ボタンがあった場所に表示されます。)
  • 「ステップ1:提出ファイルのアップロード」までスクロールダウンします。 ダウンロードしたファイルをアップロードします。 次に、青い[送信する]ボタンをクリックします。

数秒で、あなたの提出物が採点され、リーダーボードにスポットが表示されます。 次に、この最初の提出を上回る方法を説明します。

パート2:コーディング環境

このセクションでは、予測を改善するために独自の機械学習モデルをトレーニングします。

ノートブック

最初に行うことは、すべてのコードを保存するKaggleNotebookを作成することです。 Kaggle Notebooksを使用すると、コンピューターに何もインストールしなくても、コードをすばやく作成して実行できます。 (ディープラーニングに興味がある場合は、無料のGPUおよびTPUアクセスも提供しています!)

コンテストページの[Notebooks]タブをクリックすることから始めます。 次に、「New Notebook」をクリックします。

ノートブックの読み込みには数秒かかります。 左上隅に、ノートブックの名前(「kernel2daed3cd79」など)が表示されます。

名前をクリックすると編集できます。 「タイタニック入門」など、よりわかりやすいものに変更してください。

コードの最初の行

新しいノートブックを起動すると、コードを保存するための2つの灰色のボックスがあります。 これらの灰色のボックスを「コードセル」と呼びます。

最初のコードセルには、すでにいくつかのコードが含まれています。 このコードを実行するには、コードセルにカーソルを置きます。 (カーソルが正しい位置にある場合、灰色のボックスの左側に青い縦線が表示されます。)次に、再生ボタン(青い線の左側に表示されます)を押すか、[Shift]を押します。 ] + [Enter]キーボードで。

コードが正常に実行されると、3行の出力が返されます。 以下に、実行したのと同じコードと、ノートブックに表示されるはずの出力を示します。

これにより、競合データが保存されている場所がわかり、ファイルをノートブックにロードできます。 次にそれを行います。

データをロードする

ノートブックの2番目のコードセルが、ファイルの場所とともに3行の出力の下に表示されます。

以下の2行のコードを2番目のコードセルに入力します。 次に、完了したら、青い再生ボタンをクリックするか、[Shift] + [Enter]を押します。

コードは、train.csvのテーブルの最初の5行に対応する上記の出力を返す必要があります。チュートリアルに進む前に、この出力をノートブックに表示することが非常に重要です。

コードでこの出力が生成されない場合は、コードが上記の2行と同じであることを再確認してください。また、[Shift] + [Enter]を押す前に、カーソルがコードセルにあることを確認してください。

今書いたコードはPythonプログラミング言語です。 pandas(pdと略記)と呼ばれるPythonの「モジュール」を使用して、train.csvファイルからノートブックにテーブルをロードします。これを行うには、ファイルの場所(/kaggle/input/titanic/train.csv)をプラグインする必要がありました。

Python(およびパンダ)にまだ精通していない場合、コードは意味をなさないはずですが、心配しないでください!このチュートリアルのポイントは、(すばやく!)コンテストに最初に提出することです。チュートリアルの最後に、学習を継続するためのリソースを提案します。

この時点で、ノートブックには少なくとも3つのコードセルが必要です。

以下のコードをノートブックの3番目のコードセルにコピーして、test.csvファイルの内容を読み込みます。 再生ボタンをクリックする(または[Shift] + [Enter]を押す)ことを忘れないでください!

前と同じように、続行する前に、ノートブックに上記の出力が表示されていることを確認してください。

すべてのコードが正常に実行されると、すべてのデータ(train.csvおよびtest.csv内)がノートブックにロードされます。 (上記のコードは、各テーブルの最初の5行のみを示していますが、すべてのデータがあります-train.csvの891行すべてとtest.csvの418行すべてです!)

パート3:スコアを向上させる

test.csvの乗客が生き残ったかどうかを予測するのに役立つ、train.csvのパターンを見つけたいという目標を忘れないでください。

ソートするデータが非常に多い場合、最初はパターンを探すのに圧倒されるかもしれません。 それで、簡単に始めましょう。

パターンを探る

性別_submission.csvのサンプル送信ファイルは、すべての女性の乗客が生き残った(そしてすべての男性の乗客が死亡した)ことを前提としていることに注意してください。

これは合理的な最初の推測ですか? このパターンがデータ(train.csv内)に当てはまるかどうかを確認します。

以下のコードを新しいコードセルにコピーします。 次に、セルを実行します。

先に進む前に、コードが上記の出力を返すことを確認してください。 上記のコードは、生き残った女性の乗客(train.csv内)の割合を計算します。

次に、別のコードセルで以下のコードを実行します。

上記のコードは、生き残った男性の乗客(train.csv内)の割合を計算します。

このことから、乗船している女性のほぼ75%が生き残ったのに対し、男性の19%だけがそれについて話すために生きていたことがわかります。 性別は生存の非常に強力な指標であるように思われるので、gender_submission.csvの送信ファイルは悪い最初の推測ではなく、それが適度にうまく機能したことは理にかなっています!

しかし、結局のところ、この性別に基づく提出は、単一の列のみに基づいて予測を行います。 ご想像のとおり、複数の列を検討することで、より多くの情報に基づいた予測が得られる可能性のある、より複雑なパターンを見つけることができます。 一度に複数の列を検討することは非常に難しいため(または、多くの異なる列で考えられるすべてのパターンを同時に検討するのに長い時間がかかるため)、機械学習を使用してこれを自動化します。

最初の機械学習モデル

ランダムフォレストモデルを作成します。 このモデルは、各乗客のデータを個別に検討し、その個人が生き残ったかどうかを投票する複数の「ツリー」(下の写真には3つのツリーがありますが、100を構築します!)で構成されています。 次に、ランダムフォレストモデルが民主的な決定を下します。投票数が最も多い結果が勝ちます。

以下のコードセルは、データの4つの異なる列(「Pclass」、「Sex」、「SibSp」、および「Parch」)でパターンを検索します。 test.csvで乗客の予測を生成する前に、train.csvファイルのパターンに基づいてランダムフォレストモデルでツリーを構築します。 このコードは、これらの新しい予測をCSVファイルmy_submission.csvに保存します。

このコードをノートブックにコピーし、新しいコードセルで実行します。

先に進む前に、ノートブックが上記と同じメッセージを出力することを確認してください(送信は正常に保存されました!)。

繰り返しますが、このコードが意味をなさなくても心配しないでください! ここでは、予測を生成して送信する方法に焦点を当てます。

準備ができたら、ノートブックの右上隅にある青い[Save Version]ボタンをクリックします。 これにより、ポップアップウィンドウが生成されます。

  • [Save and Run All]オプションが選択されていることを確認してから、青い[Save]ボタンをクリックします。
  • これにより、ノートブックの左下隅にウィンドウが生成されます。 実行が終了したら、[Save Version]ボタンの右側にある番号をクリックします。 これにより、画面の右側にバージョンのリストが表示されます。 最新バージョンの右側にある省略記号(…)をクリックし、[Open in Viewer]を選択します。
  • 画面右側の[Output]タブをクリックします。 次に、[Submit to Competition]ボタンをクリックして、結果を送信します。

ファイルが正常に送信されると、リーダーボードを上に移動したことを示すメッセージが表示されます。 すごい仕事!

パート4:学び続けてください!

機械学習入門コースでランダムフォレストについて学んだことを使用して、さらに優れた予測を生成できますか?

より高度なテクニックについては、中級機械学習コースをご覧ください。

データサイエンスの森 Kaggleの歩き方 [ 坂本俊之 ]

価格:2,904円
(2020/11/25 23:14時点)
感想(0件)

Kaggleで勝つデータ分析の技術 [ 門脇大輔 ]

価格:3,608円
(2020/11/24 23:50時点)
感想(0件)

すぐに使える!業務で実践できる!PythonによるAI・機械学習・深層学習アプリ [ クジラ飛行机 ]

価格:3,520円
(2020/12/10 11:12時点)
感想(1件)

  • LINEで送る