検索
連載

機械学習の現場で重宝する多機能WebエディタJupyter Notebookの基本的な使い方Pythonで始める機械学習入門(2)(2/2 ページ)

最近流行の機械学習/Deep Learningを試してみたいという人のために、Pythonを使った機械学習について主要なライブラリ/ツールの使い方を中心に解説する連載。今回は、Jupyter Notebookの起動、停止、実行方法、マジックコマンド、ヘルプの使い方、Markdown形式でのテキスト入力、パスワード認証設定などを紹介する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

PandasのDataFrameの表示

 通常変数の評価値はテキスト形式で表示されますが、PandasのDataFrame(後の回で説明します)は次のように枠で囲んで整形されて表示されます。


DataFrameの例

Matplotlibのグラフを描画する「マジックコマンド」

 Notebook内でMatplotlib(これも後の回で説明します)のグラフを描画するには「%matplotlib inline」という指定が必要です。


matplotlibの例

その他の「マジックコマンド」

 このように「%」で始まるコマンドは「マジックコマンド」と呼ばれます。他に便利なコマンドには「%timeit」があります。これはコードの実行時間を計測します。


timeitの例

 他にもマジックコマンドは幾つもありますが、詳しくはセルから「%magic」と入力して「Shift」+「Enter」キーを押すと、詳しいドキュメントが出てきます。


magicの実行結果

関数やメソッド、クラスなどのヘルプを見るには

 関数やメソッド、クラスなどのヘルプを見るには、関数名、メソッド名、クラス名の後に「?」を付けてから「Shift」+「Enter」キーを押します。


ヘルプ表示の例

 「?」の代わりに「??」を付けると、該当する部分のソースコードが表示されます。


ソースコード表示の例

Markdown形式でテキストを入力するには

 コード以外にもMarkdown形式でテキストを入力することもできます。これをうまく使えばコードやデータ分析結果を含むプレゼンテーションを作ることができます。Markdown形式を選択するのは右上のドロップダウンメニューから「Markdown」を選びます。


Markdown作成

 そしてMarkdown形式のテキストを入力して「Shift」+「Enter」キーを押すとテキストが整形されます。


Markdownテキストの例(整形前)

Markdownテキストの例(整形後)

 このようにして作られたページは、Jupyter Notebookがインストールされていない環境でも見てもらうために、HTMLとしてエクスポートできます。これは分析結果のレポートを送るときなどに便利です。

Jupyter Notebookのパスワード認証設定

 大規模なデータ分析を行う際には、「操作は手元のPCで行い実際の計算はクラウド(リモート)上のサーバで」ということが多いかと思います。クラウド上のサーバでJupyter Notebookを立ち上げた場合、ブラウザからそのサーバに接続して利用するわけですが、デフォルトの設定だと誰でもそのサーバにアクセスできてしまいます。

 ここではパスワードを設定し、自分だけがアクセス可能なJupyter Notebook環境をクラウド上に構築する方法を説明します。以下の説明はJupyter Notebookオフィシャルドキュメント内の「Securing a notebook server」の項をまとめたものです。

 まず、サーバにJupyter Notebook環境をインストールし、ディレクトリ「~/.jupyter」内に、「jupyter_notebook_config.py」というファイルがあるか確認します。もしなければ、次のコマンドを実行すると作成されます。

$ jupyter notebook generate-config

 次に、パスワードを設定します(まだサーバの接続設定が済んでないわけですから)。手元のPC内でJupyter Notebookを立ち上げて次のように入力します。

from notebook.auth import passwd
passwd()

 そうするとパスワードの入力を求められるので、二度入力するとハッシュ値が表示されます。


パスワードハッシュ値生成

 次にサーバの「~/.jupyter」内の「jupyter_notebook_config.py」に「c.NotebookApp.password」の値を上記のハッシュ値に設定するコードを書きます。例えば次のような行を挿入します。

c.NotebookApp.password = u'sha1:977605a2ac2f:d5d134b50147f1ef053e3dc92aaf5cc214c0c263'

 これでパスワードの設定は終わりました。ここで、次のようにしてサーバを立ち上げると外部から接続可能になります。

$ jupyter notebook --ip=0.0.0.0

 ここで「--ip=0.0.0.0」というのは外部からの接続を全て許可するという意味なので注意してください。ブラウザでこのサーバ(デフォルトのポート番号8888)に接続しようとすると、パスワードの入力を求められると思います。

 「パスワードを設定してパスワードを入力したときだけJupyter Notebookを使えるようにする」という目的は果たせたのですが、このままだとブラウザからサーバへのデータ転送がパスワードを含めて全て平文で流れてしまいます。これが嫌な場合はSSL/TLSの設定をしなければなりません。SSL/TLS接続に関する証明書ファイルが「mycert.pem」で、秘密鍵ファイルが「mykey.key」である場合、次のように入力するとSSL/TLS機能付きのJupyter Notebookが起動します。

$ jupyter notebook --cert=mycert.pem --key=mykey.key --ip=0.0.0.0

 今度はブラウザから接続するときは「https://」を先頭に付けて指定しなければならないので気を付けてください。

パスワード設定についての注意事項

 OpenSSLを使って証明書ファイルと秘密鍵ファイルを作るには、例えば次のようにします。

$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem

 これはセキュリティに関係する重要な部分であり、必要な情報は常に変化します。最新の情報を確認した上で自己責任で行ってください。


次回以降は、Jupyter Notebook形式で実践

 Jupyter Notebookの基本的な使い方を説明しました。最新情報をチェックするためにも、詳細については適宜、以下のページも参照してください。

 次回以降の連載では連載第1回で紹介した各種ライブラリを使う具体的なコードを例示していきますが、Jupyter Notebook形式で書いていきます。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る