KNIME Analytics Platform 3.6 について
#KNIME Analytics Platform 3.6 now available! Includes enhancements to #DeepLearning integrations, new utility nodes, ability to create a local, fully functional #BigData environment within a KNIME workflow, KNIME Workflow Hub, & more. Check out https://t.co/yzXZ0hoQWt for more!
— KNIME (@knime) July 11, 2018
個人的にお気に入りのソフトウェア「KNIME」の最新バージョン 3.6 がリリースされました。早速新機能をチェックしてみましょう。
KNIME Deep Learning
- KNIMEノードを使って深層学習ネットワークを設定できるようになりました。このためコードを書かなくて良くなりました。
- 正規の Tensorflow モデルを使用し、Keras から Tensorflow にシームレスに変換できるようになりました。
これによりノード構成も大きく変更されています。Keras の Layers の中にはノードがたくさん入っています。
(3.6.0 のノード構成)
(3.5.x のノード構成)
Constant Value Column Filter
Constant Value Column Filter ノードは、入力したテーブルから定数列を削除します。例えば、列の値が0だけのもの、同一の文字のもの、すべて欠損値のものは削除されます。
↓
Numeric Outliers
Numeric Outlier ノードは、疑わしいまたは間違った数値データをデータセットから削除します。四分位範囲(IQR)を使用して、選択した各列の異常値を個別に検出して処理します。
↓
Column Expressions
Column Expressions ノードを使用すると、入力テーブルに対して行単位で実行される式を使って、列を追加したり、置き換えたりできます。この式は単一の関数呼び出しのようにシンプルにできますが、複雑な関数も使えます。文字列操作や数式の定義済み関数のライブラリを使用すると、式を簡単に作成できます。
(例: ls -l コマンドの出力からファイルかディレクトリかを判別する)
(結果)
Scorer (JavaScript)
Scorer(JavaScript)ノードは、KNIMEのScorerノードの拡張バージョンです。予測精度に関する、より詳細な統計情報にアクセスできるようになります。ラップされたメタノードビュー内の他のJavaScriptビューと対話的に動作します。
Git Nodes
Git ノードを使うと、ローカル Gitリポジトリ を操作できます。
- Author や branch などを基準にコミットを見つける。
- 特定のコミットを含む branch を見つける。
- コミットをタグ付けする。
- コミットの詳細(author, date, affected files..)を検索する。
Call Workflow (Table Based)
Call Workflow (Table Based) ノードを使うと、KNIME形式のテーブルを他のワークフローに簡単に渡せます。呼び出し側のワークフローはテーブルとフロー変数を他のワークフローに送り、処理結果のテーブルを受け取ります。呼び出される側のワークフローは Container Input/Output ノードでデータを送受信します。
- Container Input (Table) - 呼び出し側のワークフローからテーブルを受け取る。
- Container Input (Variable) - 呼び出し側のワークフローからフロー変数を受け取る。
- Container Output (Table) - 呼び出し側のワークフローにテーブルを送る。
Text Processing
2つの新しいノードが追加されました。
- Dictionary Tagger (Multi Column) - 1つのデータテーブルの複数の列を独立した辞書として使用して、文書内の用語にタグを付けることができます。
- Term Neighborhood Extractor - 文書内のすべての用語の左右の用語の近傍を抽出します。 左右の近傍の数を指定することができます。これによって、名詞の隣接した形容詞やタグ付けされた実体の隣接した動詞を全て見つけ出すことができるようになります。
Usability Improvements
キーボードショートカットを使ってノードを接続・接続解除する
右クリックメニューからノードの接続・接続解除ができるようになりました。接続したいノードを選択して、右クリックメニューまたは CTRL + L を入力してみましょう。接続解除も同様です。
ズーム
ワークフローエディタ上のワークフローをキーボードとマウスホイールでズームできるようになりました。 CTRL キーとマウスホイールを組み合わせるとズームイン・アウトできます。CTRL + ALT と マウスホイールできめ細かな調整ができます。
ノードをドロップして、ノードの置換と接続する
ノードをドラッグ&ドロップで置換できるようになりました。ドラッグすれば、接続していないノードを他のノードに置換できます。また、接続済みノードの線にのノードをドラッグすると、ノードを挿入できます。
(Joiner ノードをドラッグ)
(Joiner ノードを Row Filter ノード上で ドロップ)
(ノードが置換される)
Node repository 検索
検索がヒットしなかった場合、見つからなかった旨が表示されるようになりました。
JavaScript Table view/editor でのコピー&ペースト
Table View(JavaScript) ノードと Table Editor(JavaScript) ノードにおいて、コピー&ペーストが簡単になりました。Table View ノードでセルを範囲選択し、キーボードショートカットを使って、Table Ediror ノードの表にデータを貼り付けることができます。Microsoft Excel や Google Sheets と一緒に使うと便利です。
その他いろいろ
パフォーマンス向上: Column Store (お試し版)
KNIME のパフォーマンス改善計画の最初のステップとして、Apache Parquet ベースの KNIME 列指向ストレージ のお試し版が使えるようになりました。この拡張は、内部のKNIMEテーブルをアクセスと圧縮がより高速な形式で格納します。大量のデータを処理する場合、多くのKNIMEノードの実行時間が短縮されます。
ビューが美しく:CCS の変更
全ての JavaScript ビューは CSSルールを使ってカスタマイズできます。CSSルールを文字列に入れ、ノード設定ダイアログでフロー変数 'customCSS' をセットします。利用可能な CSS クラスのリストはこちらを参照してください。
Database Integration
新しいデータベースフレームワークはまだ完全ではありませんが、すでに新しい素敵な機能が搭載されています。新しいフレームワークを使って作成されたノードは、データベースと視覚的にやりとりできるようになっています。これらの新しいノードはノードリポジトリの KNIME Labs > DB から利用できます。
使いやすさ
信頼性
- 専用のトランザクション
- 柔軟なドライバ管理
- 接続管理の改善
パフォーマンス
- 並列実行のためのコネクションプーリング
- 全ての Reader / Writer ノードがストリーミングに対応
Apache Kafka Integration
Apache Kafka 用のノードが3つリリースされました。
- Kafka Connector - Kafka クラスタに接続します。
- Kafka Consumer - Kafka からメッセージを受け取ります。
- Kafka Producer - Kafka にメッセージを送ります。
JSON Path library update
JSON Path ライブラリ json-path のバージョンが 2.0.0 から 2.4.0 にアップデートされました。いくつかの不具合が修正され、特定の JSON Path の結果が少し変更されています。
Java Snippet Bundle Imports
新たに追加された Additional Bundles タブ を使うと、KNIME Analytics Platformのインストールに既に含まれているライブラリをバンドルして使用できるようになりました。
長くなったので、KNIME Workflow Hub、ビッグデータ系の話、商用版の機能については割愛します。
まとめ
ディープラーニング関連ノードが大幅にパワーアップしたのが印象的ですが、特定の機能によらず、いろいろとアップデートが進められているように見えます。個人的には Constant Value Column Filter ノードがお気に入りです。
各機能の詳細については、(時間があれば)別記事で取り上げたいと思います。