KNIME紹介

7K Views

April 06, 21

スライド概要

業務で使用したノンプログラミングツールのKNIMEの紹介スライドです。

profile-image

作ったスライドを共有します

Docswellを使いましょう

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

1 KNIMEについて

2.

KNIME?  Eclipseを魔改造して作られた、データ解析のためのツール   (Eclipseのプラグインなどではなくて、それ単体でダウンロードして使うソフトで す。) もともとは、医薬系の研究者のために作られた。  ドイツのコンスタンツ大学が2004年に製薬業界に対して開発。  医薬系の研究者は、プログラミングは得意ではないので、 (なるべく)ノンプログラミングでデータ解析ができるツールとなっている。 単一の機能を持つノードを1つずつくっつけていくことで、行と列のテーブル状 のデータを整形したり結合したり、CSVやエクセル形式で出力したり、KNIME 上でグラフ表示したりすることができる。  例えば以下の機能のノードがある。   データの読み/書き用ノード  データのフィルター、分割、編集、結合(Join) などのノード  グラフ表示用ノード  ループや例外処理などデータフロー制御用ノード 2

3.

KNIMEの位置づけ  3 データ解析ツール界隈では有名 KNIMEはRapidMinerと共にリーダーポジションにいる (Gartner調べ)  KNIMEとRapidMinerの比較  いろんなサイトの両者の評価はほとんど拮抗している  UIの見た目では RapidMinerが良く、拡張性ではKNIMEが良 い 詳しくはこのブログを参照) https://www.ksk-anl.com/blog/rapidminer-vs-knime-%EF%BD%9E%E5%B8%82%E6%B0%91%E3%83%87%E3%83%B

4.

https://knime-infocom.jp インフォコム株式会社のKNIME紹介サイト KNIMEの概要を知るためには、日本語でまとまっ ていて、わかりやすいかもしれない。(左の活用 事例もここから取得) 活用事例  4 世界中の様々な業種の企業がKNIMEを活用しているとのこと。 【データリテラシーの向上と意思決定の改善】データから新たな洞察を得て、あらゆる場所でより良い意思決定を行う [製造] Continental 【自然言語処理によるレトロフィットROIの定量化】作業指示書を手動で読む必要を無くす [サービス] BGIS 【データの民主化】シチズンデータサイエンティストアプローチを推進する [製造] Siemens Digital Industries [ヘルスケア] Chiesi Farmaceutici [小売・販売] Automotive Holdings Group 【物理化学的特性の計算と登録の自動化】化合物評価を完全自動化し、化学者にタイムリーに情報を提供する 【最適な在庫管理】陳腐化した在庫による損失を回避し、インサイトまでの時間を加速させる 【プラン管理のより良い意思決定】競争が激しい観光業界で競争力を維持する [サービス] thaltegos 【リスク情報の抽出】テキストベースの情報を自動的に収集・調和させ、手作業の手間を省く [ヘルスケア] S-IN Soluzioni Informatiche 【株価変動の予測】興味のある銘柄を監視し、変化を予測し、それに応じて対応する [金融] Crystalloids 【予測分析を活用した医療廃棄物の削減】終わりのない廃棄物サイクルに終止符を打つ [ヘルスケア] Z5 Inventory  日本では日本たばこ産業株式会社(JT)が導入  JTの医薬総合研究所 薬物動態研究所という研究所 がKNIMEを利用

5.

ダウンロード  ダウンロードはここから(メールアドレスとか登録 しなくてもダウンロード可)  https://www.knime.com/downloads/downloadknime 5

6.

動画のチュートリアル  Udemy という動画サイトで、無料チュートリアル (英語)を視聴できます。  https://www.udemy.com/course/knimebootcamp/  これを見ればおおよそ内容がわかると思います。   全部で4時間あるので、必要なところだけ見ればよさそう です 動画再生にはUdemyのアカウント作成が必要です。 6

7.

KNIMEの画面  7 おおまかにこんな感じです。 エクスプローラー ワークフローを 切り替える ワークフロー ノードをつなげて配置 するエリア ノードリポジトリ ここから各種ノード を選択してワークフ ローにドラッグアン ドドロップする

8.

サンプルワークフローのダウンロード   KNIME公式のKNIME HubやNodePitから色んなサ ンプルをダウンロードできます。  https://hub.knime.com/  https://nodepit.com/ 多種のノードがあるので、ノードの使い方がわか らないときは、上記サイトからサンプルをダウン ロードして、「こう使うのか」と使い方を調べる 必要があります。  上記サイトには公式が作成したものだけではなく、 個人が作成したワークフローもアップロードされて いる。   KNIMEアカウントを作ればアップロードできる KNIMEの拡張プラグインをインストールすれば基本 セット以外のノードも使える 8

9.

KNIME HubやNodePitで見れること 9 1. ワークフロー ワークフローの処理の内容が説明さ れている (ダウンロード可能) 3. ノードの詳細説明ページ 2. そのワークフローで使用されてい るノード一覧 (クリックすると3.に飛ぶ)

10.

サンプルワークフローの解説 • ここから超単純なワークフロー の解説をしていきます。 • このワークフローと同等のものは 以下からダウンロードできます。 • https://hub.knime.com/knime/s paces/Examples/latest/02_ETL_ Data_Manipulation/00_Basic_Ex amples/00_Visual_Analysis_of_Sa les_Data 10

11.

ファイル読み込み (サンプルワークフロー) 11  ノードの使い方の例としてCSVのファイル読み込みを行います  このサンプルでは、File Readerノードを使用していますが、CSV読み込み専用のCSV Reader ノードもあります。

12.

 ノードを右クリックし、Configure画面でファイルパスの 設定などを行います。 12 File Reader を右クリック して、Configureを選択 Configure画面が開く ファイルパスなどの設定を行う

13.

 設定が終わったら、再度ノードを右クリックして、Executeを選択し、ノードを実行。 13 ノード右クリックして、 Executeを選択、ノード を実行 実行後は、ノードの下のラン プが黄色から、緑になる。

14.

 実行後にノードに読み込まれたデータを確認 ノードを右クリックして、 File Tableを選択 14 テーブルとして読み込まれたデータが表示される。 (入力CSVで空欄だったセルは? (赤色)となっている。 この?はKNIME上ではmissingと呼ばれる)

15.

Column Filter (サンプルワークフロー)  15 Column Filterノードは、処理に必要なカラムだけをフィルターすることができるノード です。  不必要なカラムは削除することで、その後の処理が分かりやすくなるし、処理も軽くなりま す。

16.

 16 その後の処理に必要なcountry, date, amountだけを残して、後は除外しています。 Column FilterのConfigure画面

17.

 実行後は、選択した3つのカラムだけがテーブルに残ります。 Column Filter実行後の出力テーブル 17

18.

Row Filter (サンプルワークフロー)  18 このRow Filterでは、countryカラムがunknownとなっている行を全て除外しています。 ちなみに、この文章(Exclude rows where country unknown)のように、 各ノードに対して、自由に説明文を付けることができます。 ここに説明文を書かないと、いちいちConfigureでどんな設定をしたかを見 に行かなければならず面倒です。(時間がたつと、どんな意図で設定したか も忘れます)日本語OKです。

19.

 Row Filterの出力結果  Countryカラムがunknownになっ ている行が除外されました。 19

20.

グラフ表示  (サンプルワークフロー) このサンプルでは2つのグラフ表示を行っている  Stacked Area Chart  Pie/Donut Chart  Color Managerで色付け 20

21.

 Stacked Area Chart の表示  横軸が日時  縦軸がamount 21

22.

 円グラフの表示  国別のamountを表示 22

23.

23  基本的には、サンプルワークフローのように、入力->処理->出力orグラフ表示 の流れで、ワークフローを作成する データ入力 何らかの 処理 データ出力 (or グラフ表示 or 表の表示)

24.

入出力系ノード紹介  24 CSVやExcelファイル、テキスト ファイルなど  CSVファイルにはCSV Reader, ExcelファイルにはExcel Reader。  入力には非定型のテキストファイル も可能でした。  File ReaderやFixed Width File Readerなどを使う。  入力を受け取ったあとで、整形を頑 張る必要がある 入出力系のノード

25.

25  DBにアクセスすることも可能  今のところ使ったことはないですが DB用のノード

26.

グラフ表示用ノード紹介  26 グラフ表示用ノードは、 普通のノードのほかに、 Plotly系のノードがあります。  PlotlyとはJavascriptやPython, Rで動くグ ラフ描画用のライブラリです。   https://plotly.com/graphing-libraries/ Plotlyのほうが使い慣れている人はこっちを 使うほうがいいのかなと思います  今回の仕事では先方がPlotlyに慣れているら しく、こっちが指定されてます。 Plotly系のグラフ表示用 ノード 普通のグラフ表示用 ノード

27.

Generic JavaScript Viewノード  既存のグラフ表示用ノードでは満足で きない人、表示をカスタマイズしたい 人のためのノードです。  JavaScriptとCSSを記述できます。  Dependenciesで使用するライブラリ を選択できます。  D3, Plotly, jQuery, jQueryUI (注:これ以外のライブラリは使用でき ません) 27

28.

よく使う処理ノード紹介  今までの仕事で、よく使ってるノード2つ紹介します  String Manipulation  Rule-based Row Filter 28

29.

String Manipulationノード  入力から入ってきたデータを文字列操作する。  文字列操作はほぼこのノードできる汎用性の高いノード  正直、文字列操作はまずこのノード使ってみるって感じ 29

30.

 関数一覧から関数を選んで使用する。  substr  remove  join  strip いろいろある。 • 入力の複数のカラムの データを処理すること も可能 • カラム1と2の文字列 を結合したりなど 右の設定は、 「column1カラムの”A”を 全て”Z”に置き換えたものを、 新規にcolumn3カラムを出 力テーブルに追加してから、 追加する」 という設定 Configure画面 30

31.

31 • 前ページの設定で、String Manipulationを実行した結果 入力 出力

32.

Rule-based Row Filterノード  この条件に当てはまる行だけ欲しい!Or いらない!というときに使います。 左のサンプルの設定のように、 複数の条件式を書いて、 それに当てはまるもの行だけを抽出 したり除外したりすることができま す。 Filterでだけでなく、 Splitterというノードも あります。使い方は同 じです。 32

33.

ワークフロー制御  ループや条件分岐のためのノードがあります • ループ用ノード • ループ用のノードは、 Loop StartノードとLoop Endノードで挟まれたフ ローを繰り返すノードです。 • 条件分岐用ノード • IF SwitchやCASE Switch といったノードがあります。 33

34.

コンポーネント化  34 複数のノードをまとめて1つのコンポーネントとして扱うことができます。  コンポーネントにまとめると、ワークフローの見た目が抽象化されてわかりやすくなります。  巨大なワークフローになるとディスプレイ1画面に収まらないし読みにくくなるのでコンポーネント 化は必須です。 下図のグレーのノードがコンポーネントです。 コンポーネントの中身 (「Ask for file and email address」と書いてあるノード。 このタイトルは自由に付けられる。) (コンポーネントの出力はComponent Outputにつ ながっている) コンポーネントOpen

35.

Flow Variables (機能)  KNIMEにはノードの他に、Flow Variablesという概念・機能があります。  これは、実際にサンプルワークフローをダウンロードして動かしてみれば、わかり やすいのですが、なかなかスライドで説明するのが難しいです。   初めは何のために使うの?と思いましたが、意外と多用されます。 ノードに対して、ノードの外側から設定項目を変数で設定したりできる機能です。 35

36.

 Flow Variablesの例  CSV Readerが読み込むCSVのパスの値をFlow Variableで設定する Flow Variableを 生成するString Configuration の設定画面 Parameter Nameがfilepath とし、その値はDefault Valueに記載。 赤い線が Flow Variableの 流れを表している (黒い線は普通のデータを表す) 36

37.

 CSV Readerの設定  String Configurationノードから受け取ったFlow VariableのfilepathをInput locationに設定する。 37

38.

例外処理  38 TryノードとCatchノード、その間にBreakpointノードを挟むことで例外処理を実現で きる。  図は、input-folderにsample.csvが無いときはダミーデータを作成して出力するワークフ ロー

39.

その他の主なノード  JavaやPythonスクリプトを実行できるノード  統計関係のノード  画像処理関係のノード  バイオ系/化学系の拡張   39 もともとバイオ系/化学系の人達が使うために作られたせいか、 こちらが充実してるっぽい(他のバイオ系ツールとの連携等) KNIME Labs  テキスト処理系ノード  深層学習系ノード(Keras, TensorFlow) ここらへんは実際に使用してないのでただ羅列。 別途、拡張インストールが必要なものがほとんど。 化学系のツールがKNIMEで使える例

40.

カスタムノード  KNIMEでは、ノードを自作することができます。   既存のノードだけでは要求を実現できないときの最終手段です。 KNIMEはEclipseをベースに作成されているので、カスタムノードは、 Eclipseのプラグイン拡張開発がベースとなっています。  必要な知識は、以下のような感じです。  Eclipseプラグイン開発の初歩的な知識   (Eclipse自体Javaで作られているのでJavaの知識) KNIMEが独自に拡張した部分についての知識  公式サイトにチュートリアルがある(サンプルのソースもダウンロード可) 40