با استفاده از کتابخانه networkx یک گراف از یک لیست یال بسازید، برای هر گره ویژگی‌های مرکزی مانند degree و clustering coefficient محاسبه کنید و با یک مدل ساده یادگیری ماشینی (مثلاً LogisticRegression از scikit-learn) گره‌ها را به دسته‌های "hub" و "non-hub" طبقه‌بندی کنید.

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

0.0

نحوه حل: ابتدا با networkx گراف را از لیست یال بسازید (nx.Graph یا nx.DiGraph)، سپس با توابع آماده مانند nx.degree_centrality و nx.clustering برای هر گره ویژگی‌ها را محاسبه کنید. با یک قاعده ساده (مثلاً آستانه روی degree) برچسب‌های هدف را بسازید، ویژگی‌ها را به آرایه numpy تبدیل کرده و با train_test_split از scikit-learn یک مدل ساده مانند LogisticRegression یا RandomForest را آموزش دهید و دقت را گزارش کنید. نکات: از numpy و pandas برای مدیریت ماتریس ویژگی‌ها استفاده کنید، قبل از آموزش ویژگی‌ها را مقیاس‌دهی کنید (StandardScaler) و برای تکرارپذیری random_state را تنظیم نمایید.

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

یک نکته کلیدی این است که گراف را با nx.Graph از لیست یال بسازید و برای هر گره ویژگی‌های degree centrality و clustering را محاسبه کنید و با یک آستانه مشخص گره‌های hub را برچسب‌گذاری کنید و سپس با LogisticRegression مدل را آموزش دهید. به توازن کلاس توجه کنید؛ hubها معمولاً کمتر هستند، بنابراین از class_weight='balanced' استفاده یا از روش‌های resampling بهره ببرید. داده‌ها را به numpy/Pandas تبدیل کنید، با train_test_split تقسیم کنید، و پیش‌پردازش استانداردسازی با StandardScaler را انجام دهید تا مدل از نظر مقیاس‌بندی پایدار باشد. برای تکرارپذیری، random_state را ثابت کنید و دقت مدل را روی دادهٔ آزمون گزارش دهید تا بتوان روند را با گراف‌های مختلف مقایسه کرد.

گزارش

1 پاسخ

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

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