/* */

「KaggleのKernel機能をうまく使いこなそう」の補足説明

はじめに

先日こちらのもくもく会に参加させていただきました。

ailounge.connpass.com

もくもく会併設のLTに参加し、当日が2019年4月30日だったので平成最後のLTをやってきました。当時LTに使った発表資料はこちらになります。

docs.google.com

発表ではKaggleのKernelを使った便利な機能を紹介しますという話をしました。

具体的にはこれらの機能について話しました。

  • GPU Kernelを豪華に使える」
  • Markdownで書いた見出しを自動的に目次へ変換される」
  • 「Kernelの出力結果を別Kernelから参照できる」

上記アンダーラインを引いた2つの機能について当日あまり詳しく話せなかったので後日ブログのほうで詳細に説明しますと最終スライドでお約束しましたので、今回の記事は上記機能の詳細説明の記事になります。

Kernelの便利な使い方・機能の紹介

KernelはNotebooks / Scripts / RMarkdown Scripts タイプと3種類存在しますが今回はNotebooksのみを対象として話を進めます。

Markdownで書いた見出しを自動的に目次へ変換

NotebooksタイプのKernelにはJupyter Notebooks同様、コードを書けるセルとMarkdownを書けるセルが分かれています。Markdownの見出し(#)を書くと自動的に目次として認識してNotebooks左欄に該当する目次へジャンプするリンクを生成してくれます。

Notebooks左欄に該当する目次というのは下記スクリーンショットの赤枠で囲った部分です。

f:id:wakame1367:20190503185717p:plain

こちらをそれぞれクリックしますと下の例のように該当する目次へジャンプすることができます。

Notebooks内はどう記述されてるのと疑問に思うと思いますのでMarkdown編集時のスクリーンショットをとっておきました。Notebooks内で見出しが一番上位の見出しのみが目次に設定されるという仕組みになっています。また、見出し同士が重複すると最初に見つけた見出しについてジャンプするようになるので、ユニークな文字列を設定することをオススメします。

f:id:wakame1367:20190503185518p:plain

f:id:wakame1367:20190503185616p:plain

スクリーンショット撮影時に使いましたKernelのリンクを一応貼っておきます。

www.kaggle.com

Kernelの出力結果を別Kernelから参照できる

普段リーダーボードへのスコア投稿はKernelの実行後、submission.csvがOutputに出力されるのでそれを投稿していると思います。そのsubmission.csvがKernelの出力結果になります。この出力結果を別のKernelから参照できるようになるということですが我々にとって何が嬉しいのか、以下の点が挙げられると思います。

  • 前処理の途中経過を一時ファイルとして出力することで前処理にかかる時間をスキップできる
  • 学習済みモデルを途中経過として吐き出すことでKernelは予測のみに集中することができる

では具体的にどうやるのかスクリーンショットを交えながら説明します。

あらかじめKernelの出力結果が存在するKernelを準備しておきます。今回は公開Kernelを利用します、もちろん自分で用意したKernelでも問題ありません。

Notebooksを開くとこのような画面になると思います、右上の赤枠で囲んだAdd Datasetを押してください。

f:id:wakame1367:20190503214202p:plain

こんな画面になると思います、こちらの画面から参照したいKernelを選びます。

f:id:wakame1367:20190503214330p:plain

Petfinderの公開カーネルを選んでみます、赤枠で囲ったAddを押してみます。

f:id:wakame1367:20190503214441p:plain

追加後Notebooksに戻ると、Workspaceの部分に追加したKernelのタイトルが表示されていると思います。これで参照できました。

f:id:wakame1367:20190503214636p:plain

一応参照出来ているか確認してみます、%ls ../inputを実行すると追加したKernelのタイトルが設定されたディレクトリが見えると思います。正しく参照出来ていることが確認出来ました。

f:id:wakame1367:20190503214806p:plain

最後に、上記のようにKernelを参照すると元々../input/train.csvのように参照していたファイルパスが変わってしまうので適宜修正するようにしてください。