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

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:22

0.0

برای حل این مسئله از Python و کتابخانه networkx استفاده کنید: یک گراف (جهتی یا غیجهتی) بسازید و یال‌ها را همراه با وزن اضافه کنید، سپس از توابع آماده مانند G.degree()، nx.betweenness_centrality(G, weight='weight') و nx.closeness_centrality(G, distance='weight') برای محاسبه ویژگی‌ها استفاده کنید. ترتیب گره‌ها را ثابت نگه دارید، مقادیر ویژگی را در یک لیست مرتب جمع‌آوری کرده و با استفاده از NumPy یا pandas آن را به آرایه/DataFrame تبدیل کنید؛ در صورت نیاز از sklearn.preprocessing.StandardScaler برای نرمال‌سازی استفاده و در نهایت با np.save یا DataFrame.to_csv خروجی را ذخیره کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:22
دسته بندی ها: Python Python for beginner
arash در 221 روز قبل ساعت 13:31

نکته‌ای مفید این است که برای گراف‌های وزن‌دار، درجه‌ی غیروزنی با G.degree() و وزن‌دار با G.degree(weight='weight') تفاوت دارد؛ اگر هدف شما شدت ارتباط است از گزینه وزن استفاده کنید. ترتیب گره‌ها را ثابت نگه دارید و مقادیر ویژگی را به‌صورت مرتب در یک لیست یا آرایه با همان ترتیب جمع‌آوری کنید تا خروجی برای مدل یادگیری قابل استفاده باشد. در گراف‌های ناهم‌پیوسته ممکن است مقادیر closeness یا betweenness برابر صفر یا NaN شوند؛ قبل از ذخیره‌سازی، گراف را بررسی کنید و در صورت نیاز مقداردهی یا استفاده از محدودیت‌های منطبق انجام دهید. نهایتاً خروجی را به صورت NumPy array یا CSV (مثلاً با pandas و DataFrame) ذخیره کنید و در صورت نیاز از StandardScaler برای نرمال‌سازی استفاده کنید.

گزارش

1 پاسخ

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

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