研究をかれこれ2年半ぐらい続けてきたので、研究をする中で必要になった機械学習の手法について調べたりコードを書いたりしてきたのですが、まだまだ触ったことのない機械学習の手法も多く、研究で必要になる手法以外の知識も付けたくなってきたので、勉強し始めました。
Sphinxにまとめるか悩んだのですが、「ひとまず簡単にスライドにできること」・「手元でもすぐにコードを実行できる」という理由でJupyter Notebookを使用しています。 もし誤りやタイポ等があれば、IssueやPRお待ちしております。
今のところ↓の2つについてまとめました。
ノートブックの内容一覧
内容については今後何度も変更をすると思いますが、とりあえず今の予定としては下記の内容について書く予定です。 次は「Seabornの使い方」と「クラスタリング」について書く予定。
データ加工(Data Wrangling)・可視化(Visualization)
- Jupyter Notebook / Numpy / Pandas / matplotlibに関する基礎知識
- 異常値・外れ値・欠損値
- Seabornを使った可視化
統計(Statistics)と機械学習(Machine Learning)
Pythonのデータ分析環境の構築 with Docker
このままだと内容紹介だけになってしまうので、Dockerを使った環境構築についてメモ。
JupyterはDockerイメージを公開してくれているので、基本的にはそちらを使えばいいと思います。この時、notebooks
ディレクトリを作成しておいて、そこを下記のコマンドのように共有しておくと終了した際にもNotebookが手元のマシンに残すことができます。
$ docker pull jupyter/datascience-notebook $ docker run -p 8888:8888 -v $PWD/notebooks:/home/jovyan/work c-bata/datascience
もし自作ライブラリなどJupyterが公開しているDockerイメージの中に含まれてないライブラリ・パッケージを使用する際には下記のように jupyterのdockerfileをベースとしたコンテナを作成しましょう。
# https://github.com/c-bata/datascience-notebook/blob/master/Dockerfile From jupyter/datascience-notebook MAINTAINER Masashi Shibata <[email protected]> USER root RUN apt-get update && \ apt-get install -y graphviz-dev graphviz && \ rm -rf /var/lib/apt/lists/* USER jovyan RUN pip install pandas-validator outlier-utils
docker buildや実行は下記のようにすればOKです。
$ docker build -t c-bata/datascience . $ docker run -p 8888:8888 -v $PWD/notebooks:/home/jovyan/work c-bata/datascience
Jupyter NotebookはWebブラウザからアクセスするので、Dockerを使う方法は相性が良いなと感じています。
VPS上でNginxも使ってJupyter Notebookを使用する
VPSの環境がある場合、わざわざ手元で実行しなくてもVPS上で実行していれば好きなときにURLにアクセスして確認することが出来ます。
Nginxの設定は↓を参考にしてください。 /api/kernels
のところを下記のように記述しないと「カーネルにつながらない」と言われ動かすことが出来ない点に注意してください。
upstream jupyter { server 127.0.0.1:8001; } server { server_name jupyter.hoge.com; location / { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_set_header Host $host; proxy_pass http://jupyter; } location /api/kernels { proxy_set_header Host $host; proxy_set_header Upgrade "websocket"; proxy_set_header Connection "Upgrade"; proxy_pass http://jupyter; } }
研究データの解析とかもここでやっておくと、教授への共有も簡単ですし、移動中でもiPad等から操作出来て良さそうです。 また運用しながら知見等が貯まれば記事にしますね。

Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理
- 作者: Wes McKinney,瀬戸山雅人,小林儀匡,滝口開資
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/07/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る