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