本稿ではKaggleの初心者向けにKaggle Notebookの基本的な使い方を解説します。本記事で紹介するKaggle Notebookとは機械学習エンジニアのためのKaggleというプラットフォームのサービスです。このKaggleでは、企業や研究者がデータを投稿し、世界中の統計解析やデータ分析の専門家が機械学習モデルの最適さを競い合うコンペ(競技大会)が開催されています。本来Kaggle Notebookはコンペ参加者向けに提供されているものです。
Kaggleについてもっと知りたい方はKaggleとは?機械学習初心者が知っておくべき3つの使い方を参考にしてみてください。
Jupyter Notebookとは
Jupyter Notebookとは機械学習エンジニアが愛用するとても便利なソフトウェアです。PythonやRなどの言語を使い、プログラムを実行する機能を有します。またコードとは別に、マークダウンという機能が存在します。これはコードの説明をする際に便利で普通の文章を打ち込むことができる機能です。これにより、他人がコードを読んだ時、よりあなたのコードを理解しやすくなります。それに加えて、コードを全体での実行だけでなく、一部分ずつ実行できるという特徴(詳しくは後述)もあり、機械学習の様々なタスクを行う上でとても便利です。
注釈:Kaggleはサービス全体を私用での目的にのみに制限しています。商用での利用等は禁止されています。Kaggle Notebookをご利用の前に必ず利用規約を参照してください。
この記事の目次 [隠す]
Kaggle Notebookが人気の3つの理由
ここでは、なぜKaggle Notebookなのかを、「開発環境」「環境構築」「Kaggleとの連携」の三つの理由をもとに解説していきます。
最低限の開発環境を無料で利用可能
数千、数万という比較的機械学習では少ないデータ数を扱う際や、シンプルな機械学習モデルを作る際などにはそれほどのマシンスペックは求められません。しかし機械学習の性質上、数百、数千万という膨大なデータや計算が複雑なアルゴリズムを含むモデルを作成する機会が多々あります。その際に、マシンスペックが理由で計算ができないことがあります。Kaggle NotebookではGPUやTPUの利用ができるため、より機械学習に向いた開発環境です。(GPU・TPUは後述します)
環境構築が不要
機械学習のモデルの実装のために、多くのライブラリやフレームワークが必要です。ライブラリは目的に応じて自身の環境へインストールする必要があります。環境構築は特にプログラミング初学者には複雑で手間がかかる場合があります。しかし、Kaggle Notebookでは機械学習で使わられる代表的なライブラリが利用可能な状態で提供されます。そのため初心者でも複雑な環境構築をせずに機械学習の環境が利用できるのは大きなメリットの一つです。ただし全てのライブラリ・ フレームワークがインストールされている訳ではありません。追加でインストールが必要なライブラリもあります。例えば日本語の形態素解析で使用されるライブラリ「mecab」 はKaggle Notebookにはインストールされていません。ライブラリの追加方法は後ほど詳しく解説します。
Kaggleとの連携
Kaggle NotebookはもちろんKaggleの利用に最適化された開発環境となっています。データ分析コンペに参加する際は特に便利に感じることができるでしょう。例えばデータをダウンロードをせずにコンペ用のデータセットを使用できたり、アウトプットした予測値をワンクリックで提出できます。
Kaggle Notebookの使い方(基本編)
この基本編では、Kaggle Notebookを扱う上で基礎と以下の操作方法を解説します。Kaggle Notebookを初めて扱う方は一緒に操作を行ってみてください。
- アクセスおよび起動の仕方
- セルとボタンの説明
- データの使い方
- ライブラリの追加の仕方
アクセスおよび起動の仕方
Kaggle Notebookの使用するには無料会員登録が必要です。ログイン後にKaggleトップページの左の欄の「Notebooks」をクリックするとノートブックのトップページへ遷移します。ノートブックのトップページの「+New Notebook」をクリックしてください。
図2の「Select language」で使用言語を選択することが可能です。現在はPythonとR言語の2種類の言語を選択できます。次に「Select type」でNotebookかScriptを選択してください。目的に応じてどちらの種類を使用するのかは異なります。本稿ではNotebookを解説します。
「SHOW ADVANCED SETTINGS」は高度な設定のため、原則は変更は不要です。そのまま「Create」ボタンをクリックしてNotebookの作成をしましょう。「ADVANCED SETTINGS」の内容については、本記事の最後の項で解説をします。
セルとボタン説明
図3のように一つ一つのコードを入れる行をJupyter Notebookでは「セル」と呼びます。セルの中へPythonのコードを入力し、実行することができます。Notebookの最大の特徴はこのセルにあります。Notebookでは全体を一括実行だけでなく、セル単位でコードを実行することができるので、データの細かい分析やEDA(探索的データ分析)をする際など、すべてのコードを実行する必要がない場合に便利です。(図3を参照)
次に左上に図4のような3つのボタンがあります。 一番左はセルを下に一つ追加、真ん中はセルを実行。一番左は、Notebook「全体のコードを実行」です。Kaggle Notebookでは便利なショートカットキーの設定が用意されています。最も頻繁に使われるショートカットキーの一つに「Shift + Enter」があります。これには「選択中のセルを実行し、下にセルを追加」という機能を有している非常に便利なショートカットキーなのでぜひ使ってみてください。
Notebookでの作業が終わったら必ず保存をしましょう。図5の「Save Version」 をクリックすることでノートブックの保存が可能です。注意点として、Kaggle Notebookの仕様の一つに、最後の操作から1時間経過してしまうと、ページの更新が必要になるというものがあります(windowsでのF5)。これを行った際、コードは消えませんが実行結果や出力したファイルが消えてしまうので、1時間以上、デスクの前から席を外す場合はこちらのセーブボタンで保存するようにしておきましょう。
データの使い方
機械学習モデル開発の際にとても重要になるものがデータです。データなくして機械学習開発ははじまりません。そのような機械学習を勉強する際に一番大事なものと言っても過言でないデータの扱い方について、触れていきたいと思います。
最初に、Notebook右上の青字の「+ Add data」をクリックしていただくと 図6のような画面が出てくると思います。自分のデータを使いたいときは「Upload」をクリックし、自分のデータをアップロードすれば、 Kaggle Notebook上ですぐに使えるようになります。自習の際はもちろん、なにか自分の成果物を作りたいとき、さらにはコンペにて外部データを用いてより良いモデルを作りたい時に必要なデータは 「Datasets」で探すことができます。そしてKaggleのコンペで使われているデータは「Competition Data」 をクリックしコンペ名を入力すれば探すことができます。
本項では試しに、有名なタイタニックコンペのファイル(train.csv)をKaggle Notebook上で使用し、読み込みまで行ってみたいと思います。
図6-1の左の青枠の「Competition Data」をクリックしていただき、右の検索欄に「Titanic」と入力していただくと、Titanicのコンペが出てきます。そしたら右の「Add」を押していただけばNotebook上でそのデータが使用可能になります。(コンペティションのデータセットはノートブックに追加しても、自分のデータセットには入れる必要がなく使用することができます。)
次に図7の右上の矢印をクリックしていただくと、このNotebook上のディレクトリを表示することができ、Notebook上のファイル構造を確認することができます。 それを確認することで、今回はinputフォルダの中にtitanicフォルダが入っていて、 その中に目的のtrain.csvのデータがあることがわかります。
(‘../input/titanic/train.csv’)このようなファイルパスを指定してあげることにより無事データを取り込み、出力させることができました。
ライブラリの追加
この項に入る前に、ライブラリという言葉を少し紹介させていただきます。
プログラミングの作業をより簡単に効率的に進めるために、ライブラリというものが存在します。このライブラリとは道具箱のようなもので、この中には色々な小道具が入っています。本来この小道具たちは1からプログラムを組んで作らなければいけないのですが、このライブラリを使うことでその過程を省略し、すぐに使うことができます。
Kaggle Notebookには一般的に使われるライブラリは既にインストールしてあり、importすることによってすぐに使えるようになっていますが、一部のライブラリはインストールが必要な場合があります。本稿では、名前から人種を判別するライブラリである「Ethnicolr」を用いてライブラリの追加の方法を紹介します。
図8-1にて「ethinicolr」をimportしようとしますが、「ModuleNotFoundError:No module namese ‘ethnicolr’」と出てきます。これは、ライブラリやフレームワークがインストールされていない状態でimportをしようとすると出るエラーです。
図8-1でこのライブラリがimportされていないことが確認できたので、図8-2でpipを使いethnicolrをインストールしたいと思います。図8-2のようにダウンロードが始まり、エラーが出なかったら無事インストールが完了したことになります。
ライブラリのインストールが完了したら、再度importを試してみましょう。図8-3のようにエラーメッセージが何も表示されなかった場合は無事importが終わり、Notebook内でそのライブラリが使える状態であることを表しています。
注釈:pipインストールをする際には、Kaggle Notebookとインターネットの接続が必須になります。電話番号で本人認証をすると接続できるようになります。
Kaggle Notebookの使い方(応用編)
こちらの応用編では、基本編のように絶対に必要な知識とまではいきませんが、知っているとより便利な機能を紹介させていただきます。Notebookの共有およびデータの共有などのコラボレーション機能について紹介します。、Kaggleには個人としてコンペに参加する方法とチームとしてコンペに参加する二つの参加の仕方があります。チームでの参加の際に、この応用編での知識が役立ってくれると思います。
Notebookの共有
こちらでは、一緒に作業したい友人やチームメンバーとのNotebookのシェアの仕方を紹介します。
まずは共有したいNotebookを開いていただいて、図9の「file」から「Share」を選択していただきます。
図10の「Privacy」の部分を「Public」に変更すると、Kaggleを利用している全世界の人に対して公開してしまうので、チームとしてNotebookを共有しあう場合は基本的にチーム内だけでの共有になる「Private」を選択しましょう。
次に、シェアしたい友人などのKaggle内のユーザー名を入力し、選択します。そうすると、「Can view」か「Can edit」を選べるようになります。そして、もし共有相手にNotebookを見てもらうだけで、編集は許可しない場合は「Can view」(閲覧権限)。もし編集まで許可するのであれば「Can edit」(編集権限)を選択して下さい。それで、右下の「Save」をクリックすれば、共有完了です。
データの共有
共同作業をする際に、お互いで学習済みモデルをシェアしたり、前処理済みのテーブルデータをシェアしたりなど、Notebookの共有と共に共同作業中にとても重要なものがデータセットのシェアです。ここではKaggle上でどうやってデータセットのシェアを行うかを紹介します。
Kaggle NotebookのEditorを終了し、Kaggleのトップページにもどってください。図12にある左のDataをクリックし、その中の「YOUR DATASETS」をクリックします。
その次に共有したいデータを選択し、上の「Settings」のところで、「Add user」に共有したい相手を指定して、先ほどのように権限を指定して、「Save」をクリックすればシェアの完了です。
とても便利な2つのオプション機能
ここまで、Kaggle Notebookについての基本を紹介させていただきました。この項では、ショートカットキーとアクセラレータの使用方法の知っていると、とても便利な二つのオプション機能について紹介させていただきます。
ショートカットキー
このNotebookには数十個のショートカットキーが存在します。このショートカットを覚えれば、いちいちキーボードから手を離してマウスやタッチパッドに手をわざわざ移動させる必要がなくとても便利で時間の節約に役立ちます。
まず、ショートカットを覚える前に、覚えておかなければいけないことが一つあります。それは、Notebookのセルには「コマンドモード」と「編集モード」の二つの状態があることです。
編集モード
セルの中に、タイピングの縦線が見えており、セルの中身が白い状態
この状態ではセルの中に文字を書いたり、文字に対して操作をしたいときに使う状態(セル内をクリックで編集モードに)
コマンドモード
セルの中身が灰色になっている状態。
この状態ではセル自体に何か操作をしたい時に使います。例えばセル自体を削除したり、追加したり。(セルの外をクリックすることでコマンドモードに)
使う頻度の高いショートカットキー一覧
ここで紹介するものは特に使用頻度の高い、セルを操作するキーです。セルを操作する際は常にコマンドモードにしてあることを確認しましょう。使用するOSはwindowsでの説明になりますが、macOSでのcommandがwindowsでのCtrlとほぼ同じ働きをするので、macOSの方も参考にしていただけます。
ショートカットキー | 働き |
---|---|
Ctrl + S | 保存および上書き保存 |
B | 指定セルの下にセルを挿入 |
Y | コードセルに変換 |
M | マークダウンセルに変換 |
C | セルをコピー |
X | 選択したセルをカット |
V | カットやコピーしたものを貼り付け |
DD(D二回入力) | 選択したセルの削除 |
アクセラレータの使用
その機械学習においてとても優秀なアクセラレータの使い方は、先ほどデータを確認するために押していただいた右上の矢印をクリックします。次に、画像のように「Accelerator」の「None」をクリックするとGPUかTPUどちらを使うかを選ぶことができます。
このアクセラレータを使う際に注意点が3つだけあります。一つ目は、GPUおよびTPUはそれぞれ週に30時間しかつかうことができません。二つ目はアクセラレータを起動すると、使えるメモリが通常16GBから13GBに3GBも減ってしまうことです。三つ目はアカウントを二つ以上作ることが禁止されているということです。アクセラレータの上限使用時間になってしまった場合、新しくアカウントを作りそちらでアクセラレータを使用すればいいと思うかもしれませんが、kaggleの公式がその行為は処罰の対象であるとし禁止しています。ですが、このアクセラレータは上手に使えるようになると、とても心強い味方になってくれるはずなので、ぜひ使ってみてください。
まとめ
本稿では、Kaggle Notebookを使い、機械学習モデル開発を始める方法を紹介しました。 紹介しました通り、Kaggle Notebookは機械学習初学者はもちろんのこと、初心者でない方にも使っていただけるNotebookですので、是非各々の使い方を模索して、機械学習モデル開発に 役立ててください。