Jupyter Notebookで分析結果を社内共有!!

  • #技術ブログ 

5月19日、気が付いたら、前回のブログ更新から1ヶ月経過しておりました・・・。
ゴールデンウィーク挟んじゃったので、しょうがないよねと自分に甘い半人前エンジニアのうえピーです。

早速ですが、私最近悩んでおります。
じゃんじゃんバリバリ、re:dashを使って、社内のメンバーにDashボードで分析結果を共有!!
しているつもりだったのですが、どうも、活用してもらえてない・・・。
唯一、喜んでもらえたのは、事業者と電話番号の紐付けデータくらい・・・。

タイトルにどんな分析したか盛り込めば、表やグラフの内容も伝わるだろうというのは私の思い上がりだったようです。
にわかデータサイエンティスト気取りが作った表やグラフは、タイトルだけじゃ伝わらないっす。

そんな、私が最近出会ったツールが「Jupyter Notebook」!!
Deep Learning用にAnacoda環境を構築したら、勝手についてきたWikiPediaに毛が生えたようなやつ、
というのは、私の勝手な思い込みでした。これとっても便利。
何が便利って、Pythonで試行錯誤したデータ分析結果をそのまま、レポート化できちゃいます。
その上、ショートカットキーがしっかりしていて思いのほか、効率よく作業できるんです。
そして、1番は、
「どんな思いで、表やグラフを出力したか、PythonコードとMarkdownで伝えられる!!」

それに気付いたときの感動たるや・・・(涙)
おぉ、前置き長くなってしまいました。

というわけで、今回は「Jupyter Notebook」環境構築から、とりあえずこんな感じで使ってみましたをレポートしてみたいと思います。
【環境】
※レポートを共有するメンバーは限られているので、re:dashと同じ環境に構築しました。
仮想環境:カゴヤ・クラウド/VPS タイプA
OS:Ubuntu 14.04 LTS 64ビット

【インストール手順】
楽さを選んで、Anacondaでインストールしてます。
反省点としては、ブラウザ経由でOSのコマンドを実行できる機能があるので、rootでインストールしないほうがよかったな。
皆さまは、jupyter用のユーザーを作ったほうが宜しいかと思いますのでそこは読み換えて下さいませ。
$ sudo su - ※反省ポイント!!
# wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh
# ./Anaconda3-4.3.1-Linux-x86_64.sh
# /root/anaconda3/bin/conda install -y jupyter
# /root/anaconda3/bin/jupyter notebook –generate-config
# vim /root/.jupyter/jupyter_notebook_config.py ※社内共有するため以下を編集しました。
c.NotebookApp.ip = ‘*’ # ローカルホスト以外からもアクセス可能にする
c.NotebookApp.open_browser = False # ブラウザが自動で開かないようにする

後は、社内からしかアクセスできないようにIPを絞りました。
# vim /etc/iptables/rules.v4
-A INPUT -p tcp -m state –state NEW -m tcp -s XXX.XXX.XXX.XXX –dport XXXXX -j ACCEPT
# /etc/init.d/iptables-persistent reload

簡単でしょ!では起動します。
/root/anaconda3/bin/jupyter notebook

起動したら、コンソールにしっかり目を凝らして、tokenをクリップボードコピー!!

メモしたら、ブラウザで
http://IPアドレス:ポート番号?token=コピーしたトークン
をオープン。

すると、Anacondaインストールユーザーのホームディレクトリの中身が表示されました。

それでは、レポート書いてみます。
題材は・・・
よし、「ゼロから作るDeep Learning」を参考にニューラルネットワークの構成要素を整理してみます。

別タブに起動した画面で、レポート作成開始です。
タイトルをクリックして、変更できます。

まずは、実行に必要なライブラリをimport。
1行目のCellにフォーカスされた状態で、Enter。これでEditモードになります。
そのまま、入力。

Ctrl + Enterで実行。

そして、”b”で下にCellを追加して、”m”でMarkdown入力に移行。
そのまま、タイトルを入力っと。

Ctrl + Enter。
再度、”b”で下にCellを追加、”m”でMarkdown入力に移行。
サブタイトル、Ctrl + Enterを繰り返してこんな感じに。

次は、ステップ関数のコードを書いて、テスト実行したグラフを表示してみます。
Commandモードの状態で、y。そして、Enter。コードをごりごり。
Ctrl + Enter。
おぉ、出た出たグラフが!!

ひたすら、これを繰り返してレポート作成しているとふと、
「数式」
書きたいと思ってしまいました。
できるのかな??
できるんです、なんとLaTexに対応しております。
Commandモードの状態で、m。そして、Enter。
\begin{equation*}
E = \frac{1}{2}\sum_k(yk – tk)^2
\end{equation*}
こんな感じで、LaTexで数式を書いて、Ctrl + Enter。
おぉ、かっこいい!!

こんな感じで、素敵なレポートが出来ましたとさ、ちゃんちゃん。

みなさんも是非、一度「Jupyter Notebook」使ってみて下さい!!
それでは、また来週か、再来週か、その翌週!!!