با استفاده از کتابخانه networkx در پایتون یک گراف جهت‌دار وزن‌دار نمونه بسازید، مشخصه‌های گره (درجه ورودی/خروجی، بینابینی، نزدیکی) را محاسبه کرده، ماتریس مجاورت و یک بردار ویژگی برای هر گره تولید و آنها را در فایل CSV ذخیره کنید.

5.0 بازدید آخرین ویرایش در 212 روز قبل ساعت 15:13

0.0

برای حل این مسئله در پایتون از networkx برای ساختن گراف (nx.DiGraph() و add_weighted_edges_from) استفاده کنید، سپس با توابعی مانند in_degree و out_degree و nx.betweenness_centrality و nx.closeness_centrality مشخصه‌ها را محاسبه کنید. برای گرفتن ماتریس مجاورت از nx.to_numpy_array یا nx.adjacency_matrix و برای ذخیره خروجی‌ها از pandas.DataFrame.to_csv یا numpy.savetxt بهره ببرید. نکات: برای گراف‌های کوچک شروع کنید، روی گراف‌های غیرمتصل از تابع‌های متناسب (مثلاً weakly_connected_components) مراقبت کنید، محاسبات هزینه‌بر مانند بینابینی را در گراف‌های بزرگ با نمونه‌برداری یا پارامترهای مناسب ساده کنید و قبل از استفاده در مدل‌های ML ویژگی‌ها را نرمال‌سازی کنید.

توسط پژوهشگر در 212 روز قبل ساعت 15:13
دسته بندی ها: Python Python for beginner
nima در 211 روز قبل ساعت 17:52

برای گراف‌های جهت‌دار و وزن‌دار با NetworkX، از in_degree و out_degree برای اندازه‌گیری ورودی و خروجی هر گره استفاده کنید و betweenness_centrality و closeness_centrality را روی گرافِ مورد نظر محاسبه کنید؛ اگر گراف غیرمتصل است، با تقسیم به components یا استخراج بزرگترین جزء کار را ادامه دهید. برای ماتریس مجاورت از nx.to_numpy_array(G, weight='weight') استفاده کنید و مطمئن شوید ترتیب گره‌ها در ماتریس و بردار ویژگی‌ها یکسان است. برای گراف‌های بزرگ هزینه محاسبات به ویژه بینابینی بالا است؛ از گزینه k در betweenness_centrality برای تقریب یا sampling استفاده کنید تا زمان را کاهش دهید. خروجی‌ها را در CSV ذخیره کنید: گره‌ها همراه با مقادیر in_degree, out_degree, betweenness, closeness و بردار ویژگی و نیز ماتریس مجاورت، و قبل از استفاده در مدل‌های ML ویژگی‌ها را نرمال‌سازی کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری