Edited at

爆速でKaggle環境を構築する

More than 1 year has passed since last update.

Kaggle_logo.png


爆速でKaggle環境を作る

Kaggleに参加しようとするとデータサイエンス系のライブラリを大量にインストールする必要があリます。そのためにPythonの仮想環境を用意したりライブラリを調べたりしますが、上手くインストールできなかったりしてフラストレーションがたまることこの上ないですよね。

今回は出来るか限り少ない手順で出来る限りKaggleに用意されているカーネルと同じ環境を構築したいと思います。

特に理由がなければKernelsColaboratoryを使えば良いと思いますが、通信環境が悪かったり、VMに環境を作りたい場合は参考にしてください。


構築環境


  • macOS High Sierra


Kaggleとは

Kaggleは企業(google,mercari,Recruit,etc..)や研究機関(CERN,etc..)などがデータを提供し、世界中のデータサイエンティストが最適モデルの精度を競うプラットフォーム

タイタニックの乗船記録から乗船者の生死を予測したりする。

Titanic: Machine Learning from Disaster

動画が読み込めませんでした。


Dockerをインストール

Dockerのインストールは以下の記事が参考になりました。

DockerをMacにインストールする


Kaggle Python docker imageをPullする

Dockerが準備できたらkaggle公式のdocker imageをPullしてきます。

※かなり大きなimageなので通信環境の良い場所で実行することをオススメします。

Kaggle Python docker image - GitHub

Docker image for Python scripts run on Kaggle - Docker Hub

$ docker run --rm -it kaggle/python

#pythonのバージョンを確認
root@0ec951dc4cc4:/# python -V
Python 3.6.6 :: Anaconda custom (64-bit)
#インストールされているライブラリ一覧表示
root@0ec951dc4cc4:/# pip list


Pythonの実行方法

このままPythonを実行しても良いのですが、いつものユーザーから実行したい。

#適当な.pyファイルを作成

$ echo "print(\"Hello World\")" > test.py
#Dockerで実行
$ docker run -v $PWD:/tmp/working -w=/tmp/working --rm -it kaggle/python test.py
Hello World


Jupyter Notebookを実行する

jupyter notebookの時は少しコマンドが長くなります。

$ docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it kaggle/python jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root

~~
~~
Copy/paste this URL into your browser when you connect for the first time,to login with a token:
http://0.0.0.0:8888/?token=30a6baaa1aab16a48182da91df2f01edf437a0fdfff18a51

出力されたhttp://...を読み込めば開ける。


コマンドを短くする方法

流石に毎回docker run ~を打ってたらキリがないし、忘れるたびに検索するのも大変なので、.bash_profileにコマンドとして書いておくと便利です。

kaggle_python(){

docker run -v $PWD:/tmp/working -w=/tmp/working --rm -it kaggle/python python "$@"
}
kaggle_jupyter() {
docker run -v $PWD:/tmp/working -w=/tmp/working -p 8888:8888 --rm -it kaggle/python jupyter notebook --no-browser --ip="0.0.0.0" --notebook-dir=/tmp/working --allow-root
}

以上。

twitterでも機械学習に関する情報・オススメ記事などつぶやいているので、フォローお待ちしています。

@bam6o0