Help us understand the problem. What is going on with this article?

爆速で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

bam6o0
データ分析とかはじめました
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした