Jupyter Notebook を活用したプログラムライブラリ構築の検討 吹谷芳博 1, 藤澤正樹 1 ( 1 あすか製薬株式会社 ) Examination of the program library construction using Jupyter Notebook ASKA Pharmaceutical Co., Ltd.
要旨 : PC SAS での Jupyter Notebook の実装可能性について検討を報告する. また Jupyter Notebook の利便性を活かして SAS マクロ等のナレッジ管理ツールとしての使用事例を報告し, その他の拡張ツールを導入による利便性向上を図った内容も報告予定である. キーワード : Jupyter Notebook,Python,markdown, 文芸的プログラミング 2
本発表のプログラム内容 序論 1. 序に代えて 目的と Jupyter 周辺情報 2. 方法 Jupyter の導入方法等 本論 3. 実装結果 Jupyter の実装評価 4. 事例検討 ナレッジ管理と拡張事例 結論 5. 結論 結果と考察 3
動機と目的 プログラム開発とその周辺作業の効率化は, 惜しみない努力と時間が費やされている. 標準化のルールや共通ルールに基づく枠組みを構築しても運用等で徒労に終わる. 効率のよく標準化する枠組みを検討. 4
これまでの経緯 文芸的プログラミングを用いて方法吹谷 (2016)R パッケージ (knitr) との組合せ. Jupyter Notebook が SAS で使用可能 (2016/4) 本発表では以下の内容を報告する. PC SAS 下の実装 ナレッジ管理 R パッケージと比較 拡張事例 5
R パッケージを用いた文芸的プログラミング 文芸的プログラミングとは? 文書, プログラムソースおよびプログラムの実行結果を一括生成できる手法. 1 ファイルで管理できる. --- Title: test --- # test script ```{r} proc print data=sashelp.cars; run; ```.Rmd R Knitr HTML Word PDF 6
Jupyter Notebook について ( 全体 ) IPython (Notebook) Python を対話実行するツール 科学技術計算の分野でよく使われるようになり拡張性の高いツールとなった. Jupyter (Notebook) 高い拡張性から他分野でも利用されるようになった. それと伴って Jupyter Notebook と連携できる言語が多くなった. 7
Jupyter Notebook について (SAS) UNIX SAS と SAS University Edition で Jupyter Notebook の使用が可能となる.(2016/4) SASPy の登場で,PC SAS でも使用可能となる. PC SAS 下での実装と拡張性についても検討した. 8
本発表のプログラム内容 序論 1. 序に代えて 目的と Jupyter 周辺情報 2. 方法 Jupyter の導入方法等 本論 3. 実装結果 Jupyter の実装評価 4. 事例検討 ナレッジ管理と拡張事例 結論 5. 結論 結果と考察 9
Jupyter の動作イメージと環境設定 動作イメージ Python Jupyter SAS_Kernel SASPy SAS 環境設定のステップ Anaconda のインストール pip によるインストール Python 3 系 Jupyter SAS_Kernl SASPy 10
Jupyter Notebook 環境設定の注意点 1. sascfg.py の書き換え (config) 2. sascfg.py の書き換え (SAS のインストール先 ) 11
動作確認結果 title "Test"; proc print data=sashelp.cars(obs=5); run; 12
本発表のプログラム内容 序論 1. 序に代えて 目的と Jupyter 周辺情報 2. 方法 Jupyter の導入方法等 本論 3. 実装結果 Jupyter の実装評価 4. 事例検討 ナレッジ管理と拡張事例 結論 5. 結論 結果と考察 13
実装結果と評価 ( デモ ) Markdown 形式の文書 ログの表示 テーブルの表示 ヒートマップ図 14
実装結果と評価 ( まとめ ) 評価結果 グラフ : 画像問題なく出力. グラフ : タイトル文字化け ( 日本語のみ ). テーブル文字化け ( 日本語のみ ). 数値データ等は問題なく出力 ログの出力文字化け ( 日本語のみ ). 英語は問題なし. 処理速度 PC SASのeditor 上の実行よりも遅い. 日本語表示以外は問題なく動作可能. 15
R パッケージとの比較結果 Jupyter Notebook R(knitr) 操作方法 〇 文章構成の柔軟性 〇 出力形式 :html 出力形式 :word 〇 出力形式 :pdf *1 〇 Unix SAS や SAS University Edition での利用 拡張性 〇 Word 出力以外は Jupyter が使いやすい. 16
本発表のプログラム内容 序論 1. 序に代えて 目的と Jupyter 周辺情報 2. 方法 Jupyter の導入方法等 本論 3. 実装結果 Jupyter の実装評価 4. 事例検討 ナレッジ管理と拡張事例 結論 5. 結論 結果と考察 17
ナレッジ管理の文書構成タイトル 1. 要約 2. データの説明と前処理 3. 方法の説明 4. プログラムと結果 5. 留意点 18
ナレッジ管理の事例 ( デモ ) ポイント 業務内容に沿った形のステップを意識して作成 前処理で利用したプログラムについてもリンクを辿って理解できるようしている. 19
拡張事例の説明 ( 導入 ) Sphinx とは? Python 製のドキュメント生成ツール. 軽量マークアップ形式の.rst ファイルからさまざまなドキュメント形式に変換可能. 大規模なドキュメント作成に向いている. nbsphinx とは? Sphinx の拡張ツールで,.ipynb ファイルを取り込んでドキュメント生成が可能. nbsphinx を使った拡張を行った. 20
拡張事例の説明 ( デモ ) 検索機能としおりの表示ができた. 21
本発表のプログラム内容 序論 1. 序に代えて 目的と Jupyter 周辺情報 2. 方法 Jupyter の導入方法等 本論 3. 実装結果 Jupyter の実装評価 4. 事例検討 ナレッジ管理と拡張事例 結論 5. 結論 結果と考察 22
結果と考察 PC SAS 下でも実装可能である. 注意点は日本語の文字化けに注意しながら使用する. 拡張ツールでプログラム情報の運用管理を容易に..ipynb ファイルは拡張しやすい構造のため, 工夫次第ではより効率よくプログラム管理なども可能に. 今後の課題 SASPyの機能を使うことでデータの可視化やPythonのパッケージ (TensorFlow 等 ) の連携の可能性について検討. 23
本発表のまとめ Jupyter Notebook の活用方法について検討. 本発表では以下の内容を報告した. PC SAS 下の実装 ナレッジ管理 R パッケージと比較 拡張事例 SAS ユーザーの間でも Jupyter Notebook が活用されることを期待される. 24
参考文献 [1]: Jupyter. Jul 6, 2017. Available at <http://jupyter.org>. [2]: sas_kernel. May 10, 2017. Available at <https://github.com/sassoftware/sas_kernel>. [3]: SASPy. Jul 6, 2017. Available at <https://github.com/sassoftware/saspy>. [4]: Knuth, Donald E. (1984). "Literate Programming". The Computer Journal. British Computer Society. 27 (2): 97 111. [5]: 浜田知久馬 (2017). 新版実用 SAS 生物統計ハンドブック. サイエンティスト社,382 387. [6]: 吹谷芳博 (2016).SAS における文芸的プログラミングへの試み. SAS ユーザー総会 2016. [7]: Human Resources Analytics/Why are our best and most experienced employees leaving prematurely?. Available at <https://www.kaggle.com/ludobenistant/hr-analytics>. 25