質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

667閲覧

人の好意の関係をグループ化して、可視化させたい

Yoshitsugu12

総合スコア15

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

最適化

最適化とはメソッドやデザインの最適な処理方法を選択することです。パフォーマンスの向上を目指す為に行われます。プログラミングにおける最適化は、アルゴリズムのスピードアップや、要求されるリソースを減らすことなどを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/06/25 14:03

下表のようなものがあったとします。

イメージ説明

列の1-9の番号は人です。
0と1は、好意をもつ、持たないを指しています。
この人同士を紐付けて同じく添付した画像のようにどのようなグループに分かれるのかを可視化したいです。

イメージ説明

AIやアルゴリズムをどう用いてこのようなきれいな図をつくるのでしょうか。

画像引用:https://images.app.goo.gl/JgwGH8BbpVrwjjcCA

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ご希望のままの出力を得るにはまだやらなければならないことが多いと思いますが、とっかかりということで。

こういう図は、グラプとかネットワークと言います。グラフと言っても折れ線グラフとかでなく、ノードとそれをつなぐ変で構成された関係図のことです。

pythonにはグラフ/ネットワークを扱うnetworkxというモジュールがあります。それを使って提示の関係をグラフにして、とりあえず表示してみるとこんな感じになります。

python

1 2import networkx 3import matplotlib.pyplot as plt 4 5# グラフを初期化 6g = networkx.DiGraph() 7 8# ノード1~9を追加 9g.add_nodes_from(range(1, 10)) 10 11# 辺を追加 12g.add_edges_from([[1,5],[1,8], 13[2,1],[2,3],[2,4],[2,5],[2,6],[2,7],[2,8],[2,9], 14[3,7], 15[4,1],[4,2],[4,3],[4,5],[4,6],[4,8],[4,9], 16[5,1],[5,2],[5,3],[5,4],[5,6],[5,7],[5,9], 17[6,1],[6,2],[6,3],[6,4],[6,5],[6,7],[6,8],[6,9], 18[7,2], 19[8,1],[8,4],[8,6], 20[9,2],[9,5],[9,8]]) 21 22networkx.draw_networkx(g) 23plt.show()

イメージ説明

グラプの見た目についてはの色を変えたり大きさを変えたりできます。

また、そもそもnetworkxは描画用のライブラリではなくて解析もできるので、必要な関係の抽出などもできると思います。

投稿2021/06/25 15:16

TakaiY

総合スコア12830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yoshitsugu12

2021/06/27 03:28

これから調べてみます。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問