![見出し画像](https://assets.st-note.com/production/uploads/images/87657909/rectangle_large_type_2_03fd3a44d4b0bb2253c42ee6220ccdab.png?width=1200)
【JKI】035_Linkedin_Network_Graph_02_グラフでの可視化
【課題を再確認】
Just KNIME It! (JKI)の第35回は
LinkedInのデータを使ってネットワークグラフを作成します。
というのがお題です。前回の記事はデータのETLで終わってしまいましたので、今回は可視化します。
【KNIMEでのネットワークグラフ実装例】
KNIMEでのネットワークグラフ作成は、全くやったことがありませんでした。
そこでヒントを元に情報を探りました。
ヒント: グラフの作成には、「Network Creator」ノードと「Object Inserter」ノードを使用しました。
KNIME Hubにおいて「Network Creator」で検索したら、workflow (WF)に限定しても816ヒット!
![](https://assets.st-note.com/img/1664117216266-yW0MhgawTo.png?width=1200)
しかも私の本業である創薬研究に関連して興味深い教育プログラムまであったようです。例えばこちら。
その中にある、” 01_Protein_Interaction_Network_Solution”を拝見しました。
![](https://assets.st-note.com/img/1664117334567-WIN4NRn688.png?width=1200)
こちらを詳しく話したら私だと1ヶ月かかるのですが、要するに注目する2つのたんぱく質のどちらか、もしくは両方と相互作用するたんぱく質群に関してグラフネットワークで可視化しています。
![](https://assets.st-note.com/img/1664117347674-oZOxiZpdJH.png?width=1200)
とても教育的でしかも可視化の好例を知ることのできる良いWFだと思いました。
このWFの体験記もいつか書いてみたいです。
さて、では今回の課題へ応用してみましょう。
【解答編】ネットワークグラフ作成
![](https://assets.st-note.com/img/1664117415796-ARQdwCPji2.png?width=1200)
【ネットワークグラフ】
今回の課題はネットワークグラフの中でも、いわゆるソーシャルグラフの可視化の体験かなと思っています。
ソーシャルグラフにおけるノードは、多くの場合「人間」を指します。その他、モノや事といった「情報」がノードとして表される場合もあります。
エッジは、それらをつなぐ関係性を指します。
その可視化の一手法としてネットワークグラフをKNIMEでも描画できます。
【表示色設定】
![](https://assets.st-note.com/img/1664117742997-zMH7EzTvl1.png)
可視化のために色の設定をします。会社別ですが、同系列は同系色にしています。
設定:
![](https://assets.st-note.com/img/1664117776189-A2UG984bHo.png?width=1200)
![](https://assets.st-note.com/img/1664117792854-cJYNb4VYMV.png?width=1200)
結果:
![](https://assets.st-note.com/img/1664117812855-VV8QkMdf92.png?width=1200)
【ネットワークグラグ描画設定】
![](https://assets.st-note.com/img/1664117854723-x94SgoYG8b.png?width=1200)
ネットワークグラフ描画に、上記のWFのように4つのノードを利用しました。
全てのノードを私は初めて使いますので、日本語化されたディスクリプションから引用しつつ設定を見ていきます。
【Network Creator】
新しい空のネットワークを作成します。
設定:
![](https://assets.st-note.com/img/1664117988060-cEprleHLUK.png?width=1200)
可視化するまでは各ノードでの定義結果は省略します。
【Object Inserter】
データテーブルからノードとエッジをネットワークに挿入します。
今回はノードが人(Full_Name)で、そのつなぎ目となるハブは所属先(Affiliation)となります。
設定:
![](https://assets.st-note.com/img/1664118078806-wFu07WyJ8b.png?width=1200)
また、グラフは所属先別に作るので下記のように設定しました。
![](https://assets.st-note.com/img/1664118104951-8kxVXt2Bxu.png?width=1200)
【Feature Inserter】
データテーブルからネットワークにフィーチャーを挿入します。
フィーチャーとは各ノードの特徴データのこと、私だと「属性」と読み替えた方がしっくりきます。今回は各ノードの「色」をフィーチャーとして加えました。
設定:
![](https://assets.st-note.com/img/1664118175357-uUAZRFCYRk.png?width=1200)
【Network Viewer】
可視化の設定です。
このノードでは、cytoscape.jsライブラリを使って入力ネットワークを可視化し、作成したインタラクティブなグラフを簡単に表示・操作することができます。
設定:デフォルトから変えたタブのみ以下に
![](https://assets.st-note.com/img/1664118255491-kI8KXtojrl.png?width=1200)
![](https://assets.st-note.com/img/1664118273173-po6bl0oNtI.png?width=1200)
結果:
![](https://assets.st-note.com/img/1664118300952-dB9TdliBnk.png?width=1200)
一部拡大してみると
![](https://assets.st-note.com/img/1664118327672-vrWBOEIgC0.png?width=1200)
01_KNIMEに所属する方々に自分もこそっと紛れ込ませていたりします。
今回の場合は一人あたり一つの所属へのリンク付けしかデータがなかったですが、本来は複数コミュニティへのつながりがあるでしょうから、データを追加していくことでよりネットワークらしい網目状のグラフになっていくでしょう。
【コンポーネントでの可視化】
![](https://assets.st-note.com/img/1664118407934-9vcHUX7MsT.png)
グラフだけだと可視化で分かりにくい情報もあるかと下記の通り一覧表も表示する設定としてコンポーネントに収めました。細かい設定は割愛します。
![](https://assets.st-note.com/img/1664118429184-JDu2v0DTTZ.png?width=1200)
結果:先述のグラフの下に2種の一覧表も表示してみました。
フルネームは一部隠して紹介しています。
![](https://assets.st-note.com/img/1664118475552-A4a1cWVEwh.png?width=1200)
解答は以上です。私にとって良い勉強になりました。出題者に感謝したいです。
KNIME Hubに解答は上げています。
おまけ:
【使ってみたいネットワークグラフ】
今回初めて使ったネットワークグラフですが、用途は広いようです。
文頭で800件を超えるworkflowが公開されていると書きました。
きっと皆さんそれぞれに使いたい用途があるのではと思います。
まっきーさんが記事を書いてくれたら嬉しいなぁなんて思いつつ。
自分だったら何に使いたいかなぁと思いながらWebブラウジングしていたら、ありました!
ケモインフォマティクスのブロガーとして尊敬しているiwatobipenさんが4年前に記事を書いて下さっていました。
やはり実際に自分が使ってみたい用途があって、そのひな形や参考になるWFがあるとKNIMEでの技術習得が進みやすいです。皆さんもご自身の興味のある分野での応用例など探してみてはいかがでしょうか。
記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。