たまにはちょっとソフトウェア

ワークフロー&スウィィート

NodePit - KNIME ノードを探す便利ツール

 

Twitter を眺めていると何やらよさげなものを見つけました。

NodePit なるノード探しに使えるグレートなツールがあるようです。 NodePit の Twitter アカウントにあるリンクから NodePit の WEBサイトへアクセスしてみます。

nodepit.com

サイトのトップページは Google のような感じです。テキストエリアにキーワードを入力すれば、検索できそうです。

f:id:tymsk3891:20180128225033p:plain

 

テキストエリアに「CSV」と入力し、検索アイコンをクリックすると、以下のような結果が得られました。「CSV」に関係したものがヒットしてきています。

f:id:tymsk3891:20180128225409p:plain

 

3番目の結果「CSV Reader」をクリックすると、詳細が表示されます。

f:id:tymsk3891:20180128230246p:plain

  • Options・・・KNIME の Node Description と同じ
  • Best Friends (Incoming)・・・入力ポートによく使われるノードの一覧
  • Best Friends (Outgoing)・・・出力ポートによく使われるノードの一覧
  • Workflows・・・このノードが含まれるサンプルワークフローの一覧
  • Update Site・・・ノードのインストール方法

 

まだベータ版のためか公開元がPRしてないので、ここでは簡単な紹介に留めておきます。NodePitのプラグイン もあるようなので、興味ある人は使ってみてはいかがでしょうか。

 

 

KNIME Analytics Platform 3.5 について

 

 

個人的にお気に入りのソフトウェア「KNIME」の最新バージョン 3.5 がリリースされました。早速新機能をチェックしてみましょう。

 

www.knime.com

 

 

KNIME Big Data Extensions

KNIME3.5 最大のニュースです。商用モジュールとして提供されてきた「KNIME Big Data Extensions」が KNIME Analytics Platform の一部になり、無償で利用できるようになりました。Apache HadoopApache Spark  を KNIME から操作してみましょう。

 

JavaScript Views

新たに3つの Views が追加されました。

  • Tag Cloud
  • Data Explorer
  • Table Editor

 

Tag Cloud (都道府県人口)

f:id:tymsk3891:20171210225644p:plain

Data Explorer  (アヤメのデータを表示)

f:id:tymsk3891:20171210224656p:plain

 

KNIME Deep Learning - Keras Integration

Deep Learning ライブラリ「Keras」が KNIME で利用できるようになりました。これにより「KNIME Labs」に「Deep Learning」カテゴリが新たに追加されています。KNIME の Deep Learning は通常の KNIMEノードと同様にバックエンド環境に依存しないため、すぐに使い始められます。Keras を通じて TensorFlow や CNTK にアクセスしましょう。

 

Google Sheets Nodes

Google スプレッドシートにデータの読み書きできるようになりました。

 

Run R Model in Microsoft SQL Server

「Run R Model in Microsoft SQL Server」ノードを使うと「SQL Server Machine Learning Services」を KNIME から利用できます。SQL Server 上のデータを KNIME 側にダウンロードすることなく処理できるなどのメリットがあります。

 

Improved H2O Integration

新たなノードが追加されました。

  • k-Means
  • PCA
  • Generalized Low Rank Models
  • Column Filter
  • MOJO  (Model Object, Optimized) 

 

Extensions that have “graduated” from KNIME Labs

「KNIME Labs」カテゴリで提供されてきた以下のノードが標準ノードの仲間入りとなりました。

 

The Math Formula (Multi Column) node

 複数列を同時に処理できる「Math Formula」ノードが登場しました。従来の「Math Formula」ノードは1列ずつしか処理できなかったため、複数列を計算する場合、ノードを連続する必要がありました。

 

アヤメのデータの各列の平均を求める設定例(CURRENT_COLUMNがポイント)

f:id:tymsk3891:20171210232449p:plain

 

The OPTICS nodes

OPTICS とは DBSCAN を基本としたクラスタリングアルゴリズムです。KNIMEで「OPTICS Cluster Compute」ノードと「OPTICS Cluster Assigner」ノードを組み合わせることで利用できます。

 

The Window Loop Start node

「The Window Loop Start」ノードを使えば、1度のループで読み込む期間、次のループで読み込み始める日時を指定したループ処理が可能になります。

 

その他

  • KNIME にバンドルされている Windows R のバージョンが 3.0.3 から 3.4.2 にアップデートされました。
  • Java のバージョンが 1.8.0_60 から 1.8.0_152 にアップデートされました。
  • Linux 用 KNIME の32bit バイナリの提供が終了となりました。
  • ノード全部入り版(+ all free extensions)のインストーラの提供が終了となりました。

 

商用版の機能については割愛します。

 

 まとめ

 

Hadoop、Spark、SQL Server 等との連携機能強化が印象的なリリースとなりました。また、機械学習ライブラリ H2O 関連ノードの拡張、Keras ノードで TensorFlow との親和性も高くなっている点にも注目です。

各機能の詳細については、(時間があれば)別記事で取り上げたいと思います。

 

KNIME と macOS 10.13 High Sierra について 【追記あり】

最近、KNIME を起動するとトップ画面に以下のような警告が表示されます。

f:id:tymsk3891:20171018012115p:plain

どうも KNIME ユーザは macOS 10.13 High Sierra にアップグレードしないほうがいいようです。 Apple に問題を報告していると書かれているため、macOS 側に原因あると考えられます。(known issues のリンク先には High Sierra の不具合が多数紹介されています。)

 

High Sierra にアップグレードしてしまった!!!という人は Apple が修正アップデートを早く出してくれるように祈りましょう。。。

 

とは言っても、一体どんな問題が発生しているのか?不安な人がいるかもしれないので、警告が表示されるきっかけとなった KNIME Community Forum のやりとりを紹介します。

www.knime.com

  1. 投稿者が 「XLS reader の出力ポートからデータが読み取れない」旨の不具合を報告する。 - 10/2
  2. コミュニティの2名が検証を行い、ファイルの行数が多い場合に不具合が再現することを突き止める。 - 10/3
  3. KNIMEの達人が High Sierra の zip standard/API が壊れていることが原因だと結論づける。Appleにバグレポートを送る模様。 - 10/5
  4. さらに Table reader/writer でも同じ不具合が発生することが報告される。 - 10/10
  5. Apple に バグレポートしたけど音沙汰なし。。。 - 10/11
  6. Sierra ユーザに伝えたほうがいいよね。。。 - 10/11
  7. KNIMEのトップ画面に警告を表示することに - 10/12

 のような経緯となっています。

 

この不具合は High Sierra に組み込まれた zlib ライブラリが原因で、zlib ライブラリの修正は終わっているようです。あとはApple の対処を待つのみ。。。

 

まとめ

macOS で KNIME を使いたい人は High Sierra へのアップグレードは控えましょう。(2017.10.18 時点)

 

追記(2017.11.15)

KNIME 3.4.2 がリリースされました。更新履歴を見てみると

Bug Fixes:

AP-8083: Issues with newest Mac OS X version (High Sierra) -- data corruption

ということで、High Sierra 問題が解消されたようです。macOS 10.13 High Sierra にしてしまった人は早速 バージョン 3.4.2 にアップグレードしましょう。

 

KNIME Analytics Platform 3.4 がリリースされたようです

 

 

個人的にお気に入りのソフトウェア「KNIME」の最新バージョン 3.4 がリリースされました。早速新機能をチェックしてみましょう。

 

tech.knime.org

 

New Date & Time integration

日時データタイプのノードを全面改訂し、時間差分やタイムゾーンの計算がしやすくなりました。

 

Integration with the H2O machine learning library

H2Oのノードが登場しました。機械学習とスコアリングの機能が利用できます。

 

KNIME Personal Productivity now part of KNIME Analytics Platform

「KNIME Personal Productivity」が KNIME の標準機能になりました。

  • メタノードのテンプレート化
  • ワークフローから他のワークフローを実行
  • Workflow Coach のバージョンを指定
  • Worklfow 同士の差分取得

が利用可能となっています。

 

Wrapped metanode composite view

 JavaScript Views と Quickforms をラップノードにすることで動的な分析が可能となります。いろいろ組み合わせて Chromeブラウザで表示してみましょう。

 

A new version of the Python integration

新しい Python実行用ノードです。Python3 にも対応しています。

 

Logistic Regression nodes are more scalable, faster, and support regularization

Logistic Regression Learner が全面的に改訂されました。

  • SAG ソルバーによる高速化
  • 正則化
  • 係数ついての詳細な統計テーブルの出力

が利用可能となっています。

 

Audio and speech recognition nodes

 音声ファイルを扱うノードが登場しました。いろいろな音声認識、特徴抽出の機能が利用できます。

 

JavaScript Views

 新たに3つの Views が追加されました。

  • Network viewer
  • Sunburst chart
  • Stream Graph/Stacked Area chart

 

f:id:tymsk3891:20170718011000p:plainf:id:tymsk3891:20170718010925p:plain

 

 

New Cloud Connectors

Amazon Web Services 向けのコネクターが2つ追加されました。

 

商用版の機能については割愛します。

 

 まとめ

 JavaScript Views による動的な分析機能の強化が印象的なリリースとなりました。

また、ロジスティック回帰、日時データタイプ、Python実行ノード の再実装など、既存ノードの改訂にも積極的なようです。

 各機能の詳細については、(時間があれば)別記事で取り上げたいと思います。

 

KNIME 3.3.2 と KNIME Personal Productivity の話

KNIME 3.3.2 について

KNIME 3.3 のアップデートがリリースされたようです。大きな機能変更はありませんが、Rest ノード や Excel Reader がアップデートされています。

バグ修正も含まれており、KNIME 3.3.1 までは プロキシ環境下では Workflow Coach が使用できなかったのですが、今回のリリースで修正されています。

 

KNIME Personal Productivity について

KNIME 3.3.2 の新機能ではありませんが、商用版でのみ利用可能だった KNIME Personal Productivity が無償で使えるようになったようです。*1

www.knime.org

どのような機能かチェックしてみます。

  • Metanode Linking
    作成したメタノードを保存、他のワークフローで利用できるようになります。
  • Local Automation
    ワークフロー中でローカルに保存した他のワークフローを実行できます。ワークフローを連携する、といった使い方ができそうです。
  • Workflow Difference
    ワークフロー同士の比較、ノードの設定値の比較ができます。

複数人でワークフローをやりとりするときに便利そうです。

 

まとめ

KNIME 3.3.2 と KNIME Personal Productivity の概要を見てみました。後者はワークフローをみんなで使うときの助けになりそうです。

 

*1:KNIME Spring Summit 2017 の発表スライド参照。どのスライドかは忘れました。

KNIME Analytics Platform 3.3 について

 個人的にお気に入りのソフトウェア「KNIME」の最新バージョン 3.3 がリリースされたようなので、新機能をチェックしてみることにしました。

tech.knime.org

 

Curved connections in workflow editor

ノードをつなぐ線が曲線になりました。KNIME 3.2 以前のバージョンで作成したワークフローは直線で表示されますが、ツールバーの設定で曲線に変更できます。

 

Excel Integration Reworked

Excel 関連ノードのアップデートにより、何十万行も何千もの列からなる巨大な Excel ファイルが処理できるようになりました。

 

Upgrade to Eclipse 4.6

最新の Eclipse Neon 4.6 ベースになりました。

 

New Variable Manipulation Nodes

String Manipulation ノードと Math Formula ノードが変数ノードとして利用できるようになりました。

 

Improvements to the Text Mining Extensions

Apache Tika Integration

Tika ノードがリリースされました。様々なファイル形式(.pdf、.doc、.ppt、.txt、zip、gt など)の読み込みや解析が可能です。

Stanford NER (Named Entity Recognizer) Learner and Stanford NE Tagger nodes

固有表現(Named Entity)を扱うためのノードがリリースされました。ドキュメントと固有表現のセット用いてモデルを作成し、Stanford NE Tagger ノードでタグ付けします。作成したモデルは Scorer ノードで評価することもできます。

 

Improvements to DeepLearning4J Integration

ディープラーニング関連ノードをリファクタリングし、クラス分類・クラスタリング・回帰など用途ごとにノードをリリースしました。また、すべての Leaner ノードのユーザーインターフェースがより理解しやすく改良されています。

 

New Cloud Connectors

Amazon S3 や Azure Blob Store に接続するためのノードがリリースされました。

 

個人の感想

ドキュメント読み込み・解析周りの大幅アップデートが印象的なリリースとなりました。たまってきた電子データを扱うニーズが増えているのかもしれません。また、ディープラーニング関連ノードの開発も依然活発なようで、このまま勢いを維持していってほしいものです。

 

 

KNIME 3.2 の新機能を試す (1) - Workflow Coach

Workflow Coach はワークフロー作成時に次に配置する候補となるノードを表示してくれます。どのような機能なのか実際に試してみます。

 

ノードを全く配置していないとどうなる?

ワークフローにノードを全く配置していない状態でのノードの候補を見てみます。Communityの欄に表示されている数字は、KNIMEコミュニティの利用統計からはじき出された値のようです。

f:id:tymsk3891:20160711212750p:plain

データ入力系のノードが表示されています。データ処理はファイルの読み込みからということで、File Reader で iris.csv データを読み込みます。

f:id:tymsk3891:20160711214636p:plain

 

File Reader ノードの次はどうなる?

File Readerノードを選択した状態でノードの候補を見てみます。

f:id:tymsk3891:20160711214800p:plain

データの分割、結合、フィルタリングなどデータ操作系のノードが表示されています。k-Meansでクラスタリングする人も多いようです。次に Partitioning ノードを使ってデータを2分割してみます。

f:id:tymsk3891:20160711220005p:plain

 

Partitioning ノードの次はどうなる?

Partitioningノードを選択した状態でノードの候補を見てみます。

f:id:tymsk3891:20160711220420p:plain

Decision Tree や Naive Bayes といったデータマイニング系のノードが表示されています。データを分割しただけなのですが… 次に Decision Tree Learnerノードを使ってモデルを作成してみます。

f:id:tymsk3891:20160711221427p:plain

 

Decision Tree Learnerノードの次はどうなる?

Decision Tree Learnerノードを選択した状態でノードの候補を見てみます。

f:id:tymsk3891:20160711221944p:plain

Decision Tree Predictor が圧倒的です。モデルを作ったなら使えということでしょう。先ほど Partitioning ノードで分割したデータに対して Decision Tree Predictor で予測してみます。

f:id:tymsk3891:20160711222722p:plain

 

Decision Tree Predictorノードの次はどうなる?

Decision Tree Predictorノードを選択した状態でノードの候補を見てみます。

f:id:tymsk3891:20160711222745p:plain

Scorer や ROC Curve など予測モデル評価系のノードが表示されています。作ったモデルを評価せよということで、Scorer ノードを使ってモデルを評価してみます。

f:id:tymsk3891:20160711223351p:plain

 

Scorerノードの次はどうなる?

Scorer ノードを選択した状態でノードの候補を見てみます。

f:id:tymsk3891:20160711223524p:plain

ROC Curve ノードが第1候補となっていますが、今回のワークフローではScorerノードのデータを ROC Curveノードで処理できませんでした。(これ以上続かなくてよかった…)

 

まとめ

KNIME 3.2 の新機能 Workflow Coach の第1候補のノードを繋げていくと、Decision Treeのモデル作成と評価のワークフローに導かれるようです。

使っているうちに自分の知らないノードを発見できたり、意外なノードが候補に出てきたりして結構面白いですし、ノードを探す作業効率も上がりそうです。