--
※ この募集は締め切られました。
[高額]ネットワーク分析の描画について教えてくださる人を募集しています[python]

<募集例>
【概要】
Networkxでの具体的な描画方法について教えていただければと思います。
アソシエーション分析のエッジの太さを関係性の強さ(lift値)に比例して変化させる方法がわからずに苦慮しています。上記を教えてくださる方募集しています。
【目的】
① ネットワーク解析に関するネットワーク図の作成 (アソシエーションルール解析+描画)
【募集背景】
ネットワーク解析に関する勉強をしております。はじめにアソシエーション分析を勉強しました。
現在はネット上にあった、コードを写経のように写して理解は十分ではありませんが一通りの描画は出来ました。
ただ、ノードの大きさをベクトルの数によって変更することはできたのですが、エッジの太さを関係性の強さ(lift値)によって変化させる方法がわからずに苦慮しています。
【コミュニケーション方法】
チャットとビデオ通話の両方希望。あるいはチャットのみなど状況ごとに柔軟に状況に対応可
【参考にした動画URL】
https://www.youtube.com/watch?v=uBkQ7dhSByc&t=19s
【ご提案時のお願い】
提案いただく際はPythonのネットワークxライブラリを利用した方法についてご提示頂けますと幸いです。
また、今回を通してより深くネットワーク解析を勉強してみたいと考えています。
もしネットワーク解析について詳しい方には、継続しての契約も可能です。拙い文章でしたが、どうぞ宜しくお願いいたします。
[成果物/Pythonコード]
# データの読み込み・整形
import pandas as pd
df = pd.read_csv('ファイル名.csv', index_col='Number')
from mlxtend.frequent_patterns import apriori, association_rules, fpgrowth
#aprioriでまずsupportが高い単品or組み合わせを選出
freq_items = apriori(df, min_support=0.1, use_colnames=1)
#上で選ばれた組み合わせの中でliftが高い組み合わせを選出
freq_items_top = association_rules(freq_items, metric = "lift", min_threshold = 1.0)
df2= freq_items_top
#図にして表示
import networkx as nx
import matplotlib.pyplot as plt
# 親ノードの抽出
ant = freq_items_top['antecedents'].values
ant = [tuple(x) for x in ant]
# 子ノードの抽出
con = freq_items_top['consequents'].values
con = [tuple(x) for x in con]
# 全ノードのリストアップ
both = list(set(ant + con))
both
# 関係グラフの初期化
G = nx.DiGraph()
# ノードの追加
for n in both:
G.add_node(n)
# エッジの追加
for i in range(len(freq_items_top)):
item = freq_items_top.loc[i]
ant = tuple(item['antecedents'])
con = tuple(item['consequents'])
G.add_edge(ant, con)
pip install decorator==4.3
#グラフの描画
pos = nx.spring_layout(G,seed=1)
plt.figure(figsize=(20, 15))
# ネットワーク全体の次数の平均値を計算
average_deg = sum(d for n, d in G.degree()) / G.number_of_nodes()
# ノードの次数に比例するようにサイズを設定
sizes = [1500*deg/average_deg for node, deg in G.degree()]
nx.draw_networkx_nodes(G, pos, node_color='b',alpha=0.4,node_size = sizes)
nx.draw_networkx_edges(G, pos, alpha=0.3, edge_color="c")
nx.draw_networkx_labels(G, pos,
horizontalalignment='left',
verticalalignment='center',font_family='Hiragino Maru Gothic Pro')
plt.axis('off')
plt.savefig('beautiful2.jpeg', dpi=1500, bbox_inches='tight')
plt.show()