jupyter notebookを活用した プログラムライブラ …...jupyter (notebook) ipython...

25
Jupyter Notebookを活用した プログラムライブラリ構築の検討 ○ 吹谷 芳博 1 ,藤澤 正樹 1 1 あすか製薬株式会社) Examination of the program library construction using Jupyter Notebook ASKA Pharmaceutical Co., Ltd.

Upload: others

Post on 08-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

Jupyter Notebookを活用したプログラムライブラリ構築の検討○ 吹谷 芳博1 ,藤澤 正樹1

(1あすか製薬株式会社)

Examination of the program library

construction using Jupyter Notebook

ASKA Pharmaceutical Co., Ltd.

Page 2: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

要旨:

PC SASでのJupyter Notebookの実装可能性について検討を報告する.またJupyter Notebookの利便性を活かしてSASマクロ等のナレッジ管理ツールとしての使用事例を報告し,その他の拡張ツールを導入による利便性向上を図った内容も報告予定である.

キーワード:

Jupyter Notebook,Python,markdown,文芸的プログラミング

2

Page 3: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

3

本論

2. 方法

3. 実装結果

4. 事例検討

結論

序論

5. 結論

1. 序に代えて

Jupyterの導入方法等

Jupyterの実装評価

ナレッジ管理と拡張事例

結果と考察

目的とJupyter周辺情報

本発表のプログラム内容

Page 4: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

4

標準化のルールや共通ルールに基づく枠組みを構築しても運用等で徒労に終わる.

プログラム開発とその周辺作業の効率化は,惜しみない努力と時間が費やされている.

効率のよく標準化する枠組みを検討.

動機と目的

Page 5: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

5

Jupyter NotebookがSASで使用可能(2016/4)

文芸的プログラミングを用いて方法吹谷(2016)Rパッケージ(knitr)との組合せ.

これまでの経緯

PC SAS下の実装 Rパッケージと比較

ナレッジ管理 拡張事例

本発表では以下の内容を報告する.

Page 6: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

R

6

Rパッケージを用いた文芸的プログラミング

文芸的プログラミングとは?

Knitr Word

HTML

PDF

---

Title: test

---

# test script

```{r}

proc print

data=sashelp.cars;

run;

```

.Rmd

・文書,プログラムソースおよびプログラムの実行結果を一括生成できる手法.

・1ファイルで管理できる.

Page 7: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

7

Jupyter Notebookについて(全体)

Jupyter (Notebook)

IPython (Notebook)

・高い拡張性から他分野でも利用されるようになった.

・それと伴ってJupyter Notebookと連携できる言語が多くなった.

・Pythonを対話実行するツール・科学技術計算の分野でよく使われるようになり拡張性の高いツールとなった.

Page 8: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

8

Jupyter Notebookについて(SAS)

SASPyの登場で,PC SASでも使用可能となる.

UNIX SASとSAS University EditionでJupyter

Notebookの使用が可能となる.(2016/4)

PC SAS下での実装と拡張性についても検討した.

Page 9: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

9

本論

2. 方法

3. 実装結果

4. 事例検討

結論

序論

5. 結論

1. 序に代えて

Jupyterの導入方法等

Jupyterの実装評価

ナレッジ管理と拡張事例

結果と考察

目的とJupyter周辺情報

本発表のプログラム内容

Page 10: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

10

Python

JupyterSASSAS_Kernel

SASPy

“pip”によるインストールSAS_Kernl

SASPy

Python 3系

JupyterAnacondaのインストール

Jupyterの動作イメージと環境設定

環境設定のステップ

動作イメージ

Page 11: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

11

Jupyter Notebook環境設定の注意点

1. sascfg.pyの書き換え(config)

2. sascfg.pyの書き換え(SASのインストール先)

Page 12: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

12

title "Test"; proc print data=SASHELP.CARS(OBS=5); run;

動作確認結果

Page 13: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

13

本論

2. 方法

3. 実装結果

4. 事例検討

結論

序論

5. 結論

1. 序に代えて

Jupyterの導入方法等

Jupyterの実装評価

ナレッジ管理と拡張事例

結果と考察

目的とJupyter周辺情報

本発表のプログラム内容

Page 14: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

14

実装結果と評価(デモ)

ログの表示

テーブルの表示

Markdown形式の文書

ヒートマップ図

Page 15: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

15

評価結果

グラフ:画像 問題なく出力.

グラフ:タイトル 文字化け(日本語のみ).

テーブル 文字化け(日本語のみ).数値データ等は問題なく出力

ログの出力 文字化け(日本語のみ).英語は問題なし.

処理速度 PC SASのeditor上の実行よりも遅い.

実装結果と評価(まとめ)

日本語表示以外は問題なく動作可能.

Page 16: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

16

Rパッケージとの比較結果

Jupyter

Notebook

R(knitr)

操作方法 〇 △文章構成の柔軟性 〇 △出力形式:html ◎ ◎出力形式:word △ 〇出力形式:pdf*1 △ △Unix SASやSAS University Edition

での利用〇 ×

拡張性 ◎ 〇

Word出力以外はJupyterが使いやすい.

Page 17: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

17

本論

2. 方法

3. 実装結果

4. 事例検討

結論

序論

5. 結論

1. 序に代えて

Jupyterの導入方法等

Jupyterの実装評価

ナレッジ管理と拡張事例

結果と考察

目的とJupyter周辺情報

本発表のプログラム内容

Page 18: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

18

ナレッジ管理の文書構成

5. 留意点

タイトル

1. 要約

2. データの説明と前処理

3. 方法の説明

4. プログラムと結果

Page 19: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

19

ナレッジ管理の事例(デモ)

ポイント・業務内容に沿った形のステップを意識して作成

・前処理で利用したプログラムについてもリンクを辿って理解できるようしている.

Page 20: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

20

拡張事例の説明(導入)

Sphinxとは?

nbsphinxとは?

・Python製のドキュメント生成ツール.・軽量マークアップ形式の.rstファイルからさまざまなドキュメント形式に変換可能.

・大規模なドキュメント作成に向いている.

・Sphinxの拡張ツールで,.ipynbファイルを取り込んでドキュメント生成が可能.

nbsphinxを使った拡張を行った.

Page 21: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

21

拡張事例の説明(デモ)

検索機能としおりの表示ができた.

Page 22: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

22

本論

2. 方法

3. 実装結果

4. 事例検討

結論

序論

5. 結論

1. 序に代えて

Jupyterの導入方法等

Jupyterの実装評価

ナレッジ管理と拡張事例

結果と考察

目的とJupyter周辺情報

本発表のプログラム内容

Page 23: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

23

・.ipynbファイルは拡張しやすい構造のため,工夫次第ではより効率よくプログラム管理なども可能に.

・PC SAS下でも実装可能である.・注意点は日本語の文字化けに注意しながら使用する.・拡張ツールでプログラム情報の運用管理を容易に.

今後の課題・SASPyの機能を使うことでデータの可視化やPythonのパッケージ(TensorFlow等)の連携の可能性について検討.

結果と考察

Page 24: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

Jupyter Notebookの活用方法について検討.

SASユーザーの間でもJupyter Notebookが活用されることを期待される.

24

本発表のまとめ

PC SAS下の実装 Rパッケージと比較

ナレッジ管理 拡張事例

本発表では以下の内容を報告した.

Page 25: Jupyter Notebookを活用した プログラムライブラ …...Jupyter (Notebook) IPython (Notebook) ・高い拡張性から他分野でも利用され るようになった.

25

[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>.

参考文献