SlideShare a Scribd company logo
1 of 18
Python,
neo4j, Cytoscape.jsで
データ可視化入門
Shizuoka.py #5 オオイシ
可視化はどんな時に有効なのか?
http://qiita.com/keiono/items/387e71fe7e64e32cb948
keionoさんのVIZBIレポートより
計算機ベースの可視化が最も有効なのは、
その作業が探索的な場合である。
探索的=データが何を意味しているのか、ユーザ自身
が何を導きだそうかはっきりしない場合など。
紙ベースの可視化は解析結果を発表
するときに有効……とも。
自分はデータセットの意味(統計的な意味)を理解して
もらう「伝える可視化」と詳細な解析など次のアクショ
ンの入り口になる「探索的な可視化」、デジタルでも両
者を可視化の重要な役割として意識しています…。
http://qiita.com/keiono/items/387e71fe7e64e32cb948
keionoさんのVIZBIレポートより
• プロパティの変化に伴うダイアグラムの視覚的な変
化をインタラクティブに体験してもらう。
• 異なる状態・条件の間のダイアグラムの差異を比較
してもらう。
• 可視化によって顕在化した解析等の次のプロセスに
バドンを渡せるようなインターフェース。
aoe.dbcls.jp
例えば
このようなツールのデザインが探索的可視化アプリケーションにとって有効で、
ユーザに求められているのではないかとおもいます。
探索的な可視化のデザイン
Python + javascriptは、
探索的な可視化ツールを実装できる
とっても良いスキルセット。
なのでは。
身近なデータを使って可視化ツールの実装例を見てみま
しょう。今回はTwitterのつぶやきのデータからユーザ間
の類似度を計算し可視化してみます。
Juice=Juice
♪ハロープロジェクトのアイドルグループ
♪歌がかなり上手い
♪ここ20年くらいのアイドルグループのなかでは一番上手いかも
♪人気・知名度、あまり高く無い
♪音楽好きな身として、大変心を痛めています
Juice=Juiceファンの音楽的な嗜好をグラフ化し、潜在
的なファン層について考察してみましょう
1. 対象はJuice=Juiceを#nowplayingしたことのある
Twitterアカウント
2. #nowplayingしたアーティストの比率でユーザの
cos類似度を計算しています。
3. 算出したユーザの類似度はグラフとしてグラフ
DBのneo4jにインポートしています。
4. neo4jに保存されたグラフをPythonから取得し、
Cytoscape.jsで可視化しています。
今回の可視化の大まかな特長
neo4jに取り込んだグラフ
Pythonからneo4jのrest clientのサイファークエリ
を叩いてグラフを取得し、jsonに変換。
relationのプロパティ”weight”で類似度をフィルタ
ーできるようにしています。
Cytoscape.js http://js.cytoscape.org
neo4j https://neo4j.com
LOAD CSV WITH HEADERS FROM “file:///Users/<local data
path>/nodes.csv" AS csvLine CREATE (n:User {id: csvLine.id, name:
csvLine.name});
neo4jのcommand line tool、またはwebクライアントで実行する
nodeのインポート
edgeのインポート
LOAD CSV WITH HEADERS FROM "file:///Users/<local data
path>/edges.csv" AS csvLine MATCH (m:User), (n:User) WHERE
m.name=csvLine.start AND n.name=csvLine.end CREATE (m)-
[r:SIMILAR_TO {weight: toFloat(csvLine.weight)}]->(n);
Cypher
デモ
※データの概況
収集した期間:2015-04-21~2015-05-27
収集した#nowplyaingを含むtweet:8,758,992
内Juice=Juiceの#nowplaying数:6420
Juice=Juiceについて#nowplayingしたアカウント:829
上記アカウントによるtweet:627,402
PythonとJavaScriptをつかった可視化、楽しそうです
よね?
今回の発表で、可視化ツールがどのような目的の時に
どのように実装したら有効であるか、自分なりの印象
をお伝えできていたら幸いです。

More Related Content

Similar to Python neo4j cytoscapejsでデータ可視化入門

Thinking datascientist itself
Thinking datascientist itselfThinking datascientist itself
Thinking datascientist itselfHiroyukiOtsubo
 
2021年オープンキャンパス模擬講義(伊藤正彦)公開用抜粋
2021年オープンキャンパス模擬講義(伊藤正彦)公開用抜粋2021年オープンキャンパス模擬講義(伊藤正彦)公開用抜粋
2021年オープンキャンパス模擬講義(伊藤正彦)公開用抜粋Masahiko Itoh
 
気づきとサービスデザインワークショップ
気づきとサービスデザインワークショップ気づきとサービスデザインワークショップ
気づきとサービスデザインワークショップMasaya Ando
 
20110110日本図書館研究会
20110110日本図書館研究会20110110日本図書館研究会
20110110日本図書館研究会UEHARA, Tetsutaro
 
「デザイニング・インターフェース」勉強会 - 第7章
「デザイニング・インターフェース」勉強会 - 第7章「デザイニング・インターフェース」勉強会 - 第7章
「デザイニング・インターフェース」勉強会 - 第7章Tsutomu Kawamura
 
「数字を見せろ」から「コードを見せろ」へ 〜過程の透明性を確保したデータ可視化を目指す〜
「数字を見せろ」から「コードを見せろ」へ 〜過程の透明性を確保したデータ可視化を目指す〜「数字を見せろ」から「コードを見せろ」へ 〜過程の透明性を確保したデータ可視化を目指す〜
「数字を見せろ」から「コードを見せろ」へ 〜過程の透明性を確保したデータ可視化を目指す〜Keiichiro Ono
 
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜Takashi Kaneda
 
LT.19 BigQueryとGoogleスプレッドシートで作る格安BI
LT.19 BigQueryとGoogleスプレッドシートで作る格安BILT.19 BigQueryとGoogleスプレッドシートで作る格安BI
LT.19 BigQueryとGoogleスプレッドシートで作る格安BIGIG inc.
 
ビジュアライゼーションの役割とUI開発のイノベーション(1)
ビジュアライゼーションの役割とUI開発のイノベーション(1)ビジュアライゼーションの役割とUI開発のイノベーション(1)
ビジュアライゼーションの役割とUI開発のイノベーション(1)BizCOLLEGE
 
データの可視化
データの可視化データの可視化
データの可視化Marie Goto
 
20120620 idg(ontrox) v1.6
20120620 idg(ontrox) v1.620120620 idg(ontrox) v1.6
20120620 idg(ontrox) v1.6ONTROX
 
これからイベントを開催したい人のためのUX設計
これからイベントを開催したい人のためのUX設計これからイベントを開催したい人のためのUX設計
これからイベントを開催したい人のためのUX設計Yuxio tech
 
潜在トピックとネットワーク分析
潜在トピックとネットワーク分析潜在トピックとネットワーク分析
潜在トピックとネットワーク分析s tanaka
 
ネットで個人はどこまで追われているか
ネットで個人はどこまで追われているかネットで個人はどこまで追われているか
ネットで個人はどこまで追われているかYoichi Tomi
 
タイトルが決まるまで担当編集者とどう戦ったのか!
タイトルが決まるまで担当編集者とどう戦ったのか!タイトルが決まるまで担当編集者とどう戦ったのか!
タイトルが決まるまで担当編集者とどう戦ったのか!E2D3.org
 
暇ツイートLOD
暇ツイートLOD暇ツイートLOD
暇ツイートLODtechan555
 
UX approach for real cross media planning
UX approach for real cross media planningUX approach for real cross media planning
UX approach for real cross media planningTakashi Sakamoto
 
オープンデータで実現する作文測定分析のシステム構成
オープンデータで実現する作文測定分析のシステム構成オープンデータで実現する作文測定分析のシステム構成
オープンデータで実現する作文測定分析のシステム構成yamahige
 

Similar to Python neo4j cytoscapejsでデータ可視化入門 (20)

Thinking datascientist itself
Thinking datascientist itselfThinking datascientist itself
Thinking datascientist itself
 
2021年オープンキャンパス模擬講義(伊藤正彦)公開用抜粋
2021年オープンキャンパス模擬講義(伊藤正彦)公開用抜粋2021年オープンキャンパス模擬講義(伊藤正彦)公開用抜粋
2021年オープンキャンパス模擬講義(伊藤正彦)公開用抜粋
 
気づきとサービスデザインワークショップ
気づきとサービスデザインワークショップ気づきとサービスデザインワークショップ
気づきとサービスデザインワークショップ
 
050830 openforum
050830 openforum050830 openforum
050830 openforum
 
20110110日本図書館研究会
20110110日本図書館研究会20110110日本図書館研究会
20110110日本図書館研究会
 
「デザイニング・インターフェース」勉強会 - 第7章
「デザイニング・インターフェース」勉強会 - 第7章「デザイニング・インターフェース」勉強会 - 第7章
「デザイニング・インターフェース」勉強会 - 第7章
 
「数字を見せろ」から「コードを見せろ」へ 〜過程の透明性を確保したデータ可視化を目指す〜
「数字を見せろ」から「コードを見せろ」へ 〜過程の透明性を確保したデータ可視化を目指す〜「数字を見せろ」から「コードを見せろ」へ 〜過程の透明性を確保したデータ可視化を目指す〜
「数字を見せろ」から「コードを見せろ」へ 〜過程の透明性を確保したデータ可視化を目指す〜
 
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
物体認識 IoT サービスを支える技術 〜クラウドアーキテクチャから組込み深層学習まで〜
 
LT.19 BigQueryとGoogleスプレッドシートで作る格安BI
LT.19 BigQueryとGoogleスプレッドシートで作る格安BILT.19 BigQueryとGoogleスプレッドシートで作る格安BI
LT.19 BigQueryとGoogleスプレッドシートで作る格安BI
 
ビジュアライゼーションの役割とUI開発のイノベーション(1)
ビジュアライゼーションの役割とUI開発のイノベーション(1)ビジュアライゼーションの役割とUI開発のイノベーション(1)
ビジュアライゼーションの役割とUI開発のイノベーション(1)
 
データの可視化
データの可視化データの可視化
データの可視化
 
TokyoR105_iwaoki.pptx
TokyoR105_iwaoki.pptxTokyoR105_iwaoki.pptx
TokyoR105_iwaoki.pptx
 
20120620 idg(ontrox) v1.6
20120620 idg(ontrox) v1.620120620 idg(ontrox) v1.6
20120620 idg(ontrox) v1.6
 
これからイベントを開催したい人のためのUX設計
これからイベントを開催したい人のためのUX設計これからイベントを開催したい人のためのUX設計
これからイベントを開催したい人のためのUX設計
 
潜在トピックとネットワーク分析
潜在トピックとネットワーク分析潜在トピックとネットワーク分析
潜在トピックとネットワーク分析
 
ネットで個人はどこまで追われているか
ネットで個人はどこまで追われているかネットで個人はどこまで追われているか
ネットで個人はどこまで追われているか
 
タイトルが決まるまで担当編集者とどう戦ったのか!
タイトルが決まるまで担当編集者とどう戦ったのか!タイトルが決まるまで担当編集者とどう戦ったのか!
タイトルが決まるまで担当編集者とどう戦ったのか!
 
暇ツイートLOD
暇ツイートLOD暇ツイートLOD
暇ツイートLOD
 
UX approach for real cross media planning
UX approach for real cross media planningUX approach for real cross media planning
UX approach for real cross media planning
 
オープンデータで実現する作文測定分析のシステム構成
オープンデータで実現する作文測定分析のシステム構成オープンデータで実現する作文測定分析のシステム構成
オープンデータで実現する作文測定分析のシステム構成
 

More from Nao Oec

Pgx user meeting_20170602
Pgx user meeting_20170602Pgx user meeting_20170602
Pgx user meeting_20170602Nao Oec
 
Lodチャレンジ2016 エリアベンチマーキング資料
Lodチャレンジ2016 エリアベンチマーキング資料Lodチャレンジ2016 エリアベンチマーキング資料
Lodチャレンジ2016 エリアベンチマーキング資料Nao Oec
 
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成Nao Oec
 
PGXでつぶやきの類似度によるグラフを生成してみた
PGXでつぶやきの類似度によるグラフを生成してみたPGXでつぶやきの類似度によるグラフを生成してみた
PGXでつぶやきの類似度によるグラフを生成してみたNao Oec
 
RESASを使った静岡市の新しい産業の創成手法サンプル
RESASを使った静岡市の新しい産業の創成手法サンプルRESASを使った静岡市の新しい産業の創成手法サンプル
RESASを使った静岡市の新しい産業の創成手法サンプルNao Oec
 
Dockerで作るd3.jsインタラクション共有&DL環境
Dockerで作るd3.jsインタラクション共有&DL環境Dockerで作るd3.jsインタラクション共有&DL環境
Dockerで作るd3.jsインタラクション共有&DL環境Nao Oec
 
Shizuokapy4_データヴィジュアライズのための簡単なWeb API開発まめ知識
Shizuokapy4_データヴィジュアライズのための簡単なWeb API開発まめ知識Shizuokapy4_データヴィジュアライズのための簡単なWeb API開発まめ知識
Shizuokapy4_データヴィジュアライズのための簡単なWeb API開発まめ知識Nao Oec
 
コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会Nao Oec
 
Open streetmapハンズオン@静岡まとめ
Open streetmapハンズオン@静岡まとめOpen streetmapハンズオン@静岡まとめ
Open streetmapハンズオン@静岡まとめNao Oec
 
Shizuokapy 3 oec_nlp
Shizuokapy 3 oec_nlpShizuokapy 3 oec_nlp
Shizuokapy 3 oec_nlpNao Oec
 
iLeafletとは何か
iLeafletとは何かiLeafletとは何か
iLeafletとは何かNao Oec
 

More from Nao Oec (11)

Pgx user meeting_20170602
Pgx user meeting_20170602Pgx user meeting_20170602
Pgx user meeting_20170602
 
Lodチャレンジ2016 エリアベンチマーキング資料
Lodチャレンジ2016 エリアベンチマーキング資料Lodチャレンジ2016 エリアベンチマーキング資料
Lodチャレンジ2016 エリアベンチマーキング資料
 
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
 
PGXでつぶやきの類似度によるグラフを生成してみた
PGXでつぶやきの類似度によるグラフを生成してみたPGXでつぶやきの類似度によるグラフを生成してみた
PGXでつぶやきの類似度によるグラフを生成してみた
 
RESASを使った静岡市の新しい産業の創成手法サンプル
RESASを使った静岡市の新しい産業の創成手法サンプルRESASを使った静岡市の新しい産業の創成手法サンプル
RESASを使った静岡市の新しい産業の創成手法サンプル
 
Dockerで作るd3.jsインタラクション共有&DL環境
Dockerで作るd3.jsインタラクション共有&DL環境Dockerで作るd3.jsインタラクション共有&DL環境
Dockerで作るd3.jsインタラクション共有&DL環境
 
Shizuokapy4_データヴィジュアライズのための簡単なWeb API開発まめ知識
Shizuokapy4_データヴィジュアライズのための簡単なWeb API開発まめ知識Shizuokapy4_データヴィジュアライズのための簡単なWeb API開発まめ知識
Shizuokapy4_データヴィジュアライズのための簡単なWeb API開発まめ知識
 
コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会
 
Open streetmapハンズオン@静岡まとめ
Open streetmapハンズオン@静岡まとめOpen streetmapハンズオン@静岡まとめ
Open streetmapハンズオン@静岡まとめ
 
Shizuokapy 3 oec_nlp
Shizuokapy 3 oec_nlpShizuokapy 3 oec_nlp
Shizuokapy 3 oec_nlp
 
iLeafletとは何か
iLeafletとは何かiLeafletとは何か
iLeafletとは何か
 

Python neo4j cytoscapejsでデータ可視化入門

Editor's Notes

  1. VIZBI(Bisualizing Biological Dataという学会)。この言葉ジョージア工科大学の可視化研究者による、キーノートから。
  2. weightでフィルターした「類似している」関係をCytoscape.jsに表示している。
  3. mysqlに保存したつぶやき情報から個々のアカウントごとのアーティストのつぶやき比率・回数を集計します。
  4. 全アーティストのリストを取得して
  5. 前のスライドのリストを使って、ユーザーごとのアーティストに関するつぶやき比率のベクトルをつくっています。ベクトルはitertoolのcomibinationを使って全ての組み合わせで内積を計算しています。計算したアカウントと類似度のデータはcsvに一度保存しておきます。
  6. CSVからneo4へのとりこみ。
  7. bottleでAPIサーバを作って、Cytoscape.jsから利用しています。グラフを描画する場合、だいたいnodeのデータとedgeのデータが必用な事が多いかも。
  8. 1)複数のクラスターができるかと思っていたが、Juice=Juiceを聞く人はほとんどJuice=Juiceだけしか聴かない、ハロプロしか聴かないというのが、圧倒的な類型。ただしモーニング娘のリスナーがJuice=Juiceも聴いてみる的に聴くひともいそう。いずれにしろ、ハロプロの音楽ばかり聴いているのが圧倒的なJuice=Juiceユーザの類型。Jpop的なものや他のアイドルも聴いているようなクラスターが見られるのでは無いかと思ったので意外でした。 2)探索的可視化ツールではデータセットの切り口、見方を何か発見したら、次のアクションにバトンを渡せるような導線が求められる。今回はDLのリンクを付けてみた。できればD3.jsのbrushingなどと解析のプロセスをつなげたい。今Juiceばかり聴いている類似度の高いコアなアカウントが2年前・3年毎はだれについて聴いてたかとか。次の解析の切り口が思い浮かんだりする。
  9. 1)アンケートにしろこんなSNSのデータにしろ自然言語のデータって、ゴールがはっきりせず、探索的アプローチになりがちなのかなという気もしています。何を使っても良いけど簡単なデータマイニングのバックエンドと可視化をWebサービスとして実現しようとしたら、Python+javascriptはすごく良い組み合わせ。様々な公共データが公開されてく方向にある。それを活かすような知識・スキルってだれにとっても役立つものですよね。 2)python3+nginxでサーバ起てたい。公開用サーバは、mod_wsgiの設定がエラーになって途中で放棄している。