学習方法

メンター情報

料金

対応時間帯

返信スピード

学習方法

メンター情報

料金

対応時間帯

返信スピード

Okamoto.N

普段は臨床医として勤務しておりますが、合わせて大学院での研究を行っています。 教室の得意分野として、血清の代謝物測定をしており、私も上記分野を勉強したいと考えています。 低分子代謝物を網羅的に解析を行うメタボロミクスを現在メインのテーマにしています。 研究方法として、機械学習を自己学習していますが わからない点も多く、こちらのサイトを登録させてい....
プロフィールをもっとみる

--

募集をシェアしてメンターを探そう
シェア

※ この募集は締め切られました。

AI・機械学習 ネットワーク Python 機械学習 研究 アソシエーション

[高額]ネットワーク分析の描画について教えてくださる人を募集しています[python]

2022年5月4日
月額
予算
25,000円/月 〜 40,000円/月
提案数
2人が提案中
応募期限
終了

<募集例>

【概要】
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()

Okamoto.N

プロフィール

普段は臨床医として勤務しておりますが、合わせて大学院での研究を行っています。
教室の得意分野として、血清の代謝物測定をしており、私も上記分野を勉強したいと考えています。
低分子代謝物を網羅的に解析を行うメタボロミクスを現在メインのテーマにしています。

研究方法として、機械学習を自己学習していますが
わからない点も多く、こちらのサイトを登録させていただきました。

初心者ですが、どうぞよろしくお願いします。

--

募集をシェアしてメンターを探そう
シェア