Machine Learning · یادگیری ماشین

تشخیص دیابت با داده‌های آموزشی

طبقه‌بندی برچسب آموزشی با داده علائم؛ این تمرین ابزار تشخیص پزشکی نیست.

۱۰۰ دقیقه · ۲۴۰ XP · Python · Scikit-learn · Evaluation

هدف و راهنمای انجام

جداسازی آموزش و ارزیابی و سنجش تعمیم مدل

ورودی

train: لیست سطرهای دارای class؛ test: لیست ویژگی‌های بدون هدف؛ features: ['age', 'gender', 'polyuria', 'polydipsia', 'sudden_weight_loss', 'weakness', 'polyphagia', 'genital_thrush', 'visual_blurring', 'itching', 'irritability', 'delayed_healing', 'partial_paresis', 'muscle_stiffness', 'alopecia', 'obesity']؛ target: class

خروجی

result.json شامل predictions با یک مقدار به‌ازای هر سطر test؛ عدد برای رگرسیون و برچسب موجود در train برای دسته‌بندی.

  1. request.json شامل train دارای برچسب و test بدون برچسب است؛ فایل CSV محلی برای مطالعه است و در ارزیابی به محیط ارسال نمی‌شود.
  2. train را به ویژگی‌ها و target جدا کن؛ داده ارزیابی بیرونی را هرگز برای fit استفاده نکن.
  3. برای تمرین، با train_test_split و random_state=42 بخشی از train را نگه دار و مدل را با MAE یا accuracy/F1 بسنج.
  4. مدل یا Pipeline را فقط روی داده آموزش fit کن؛ سپس برای تمام سطرهای test پیش‌بینی کن.
  5. predictions را به ترتیب test در result.json ذخیره کن؛ امتیاز نهایی را داور روی برچسب‌های خارج محیط محاسبه می‌کند.

تقسیم داده را داور هم مستقل انجام می‌دهد؛ موفقیت صرف اجرای برنامه یا metric چاپ‌شده کافی نیست. random_state=42 را برای بازتولیدپذیری تنظیم کن.

مثال ورودی و خروجی

{
    "input": {
        "train": [
            {
                "age": 60,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 1,
                "class": "1"
            },
            {
                "age": 32,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 1,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 1,
                "class": "1"
            },
            {
                "age": 58,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 1,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 59,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 0,
                "muscle_stiffness": 1,
                "alopecia": 1,
                "obesity": 1,
                "class": "0"
            },
            {
                "age": 40,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 1,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 1,
                "class": "1"
            },
            {
                "age": 45,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 46,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 1,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 31,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 0,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 30,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 0,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 1,
                "delayed_healing": 0,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 48,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 56,
                "gender": 1,
                "polyuria": 1,
                "polydipsia": 0,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 1,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 1,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 56,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 1,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 0,
                "muscle_stiffness": 1,
                "alopecia": 1,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 61,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 1,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 1,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 48,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 30,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 28,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 38,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 1,
                "class": "1"
            },
            {
                "age": 40,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 50,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 1,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 42,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 1,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 30,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 38,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 54,
                "gender": 1,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 45,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 54,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 0,
                "muscle_stiffness": 1,
                "alopecia": 1,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 54,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 0,
                "muscle_stiffness": 1,
                "alopecia": 1,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 47,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 47,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 1,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 55,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 0,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 55,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 1,
                "class": "1"
            },
            {
                "age": 36,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 1,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 46,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 1,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 1,
                "obesity": 0,
                "class": "0"
            },
            {
                "age": 40,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 1,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 1,
                "class": "0"
            },
            {
                "age": 68,
                "gender": 1,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 0,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 54,
                "gender": 1,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 63,
                "gender": 1,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 1,
                "alopecia": 1,
                "obesity": 1,
                "class": "1"
            },
            {
                "age": 47,
                "gender": 1,
                "polyuria": 1,
                "polydipsia": 0,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 61,
                "gender": 1,
                "polyuria": 1,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 1,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 70,
                "gender": 1,
                "polyuria": 0,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 1,
                "obesity": 0,
                "class": "1"
            },
            {
                "age": 50,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 1,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 1,
                "itching": 1,
                "irritability": 1,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 1,
                "alopecia": 0,
                "obesity": 0,
                "class": "1"
            }
        ],
        "test": [
            {
                "age": 48,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 1,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0
            },
            {
                "age": 50,
                "gender": 0,
                "polyuria": 1,
                "polydipsia": 1,
                "sudden_weight_loss": 0,
                "weakness": 1,
                "polyphagia": 1,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 1,
                "partial_paresis": 1,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0
            },
            {
                "age": 59,
                "gender": 0,
                "polyuria": 0,
                "polydipsia": 0,
                "sudden_weight_loss": 0,
                "weakness": 0,
                "polyphagia": 0,
                "genital_thrush": 0,
                "visual_blurring": 0,
                "itching": 0,
                "irritability": 0,
                "delayed_healing": 0,
                "partial_paresis": 0,
                "muscle_stiffness": 0,
                "alopecia": 0,
                "obesity": 0
            }
        ],
        "features": [
            "age",
            "gender",
            "polyuria",
            "polydipsia",
            "sudden_weight_loss",
            "weakness",
            "polyphagia",
            "genital_thrush",
            "visual_blurring",
            "itching",
            "irritability",
            "delayed_healing",
            "partial_paresis",
            "muscle_stiffness",
            "alopecia",
            "obesity"
        ],
        "target": "class"
    },
    "output": {
        "predictions": [
            "برچسب یا عدد برای هر سطر test"
        ]
    }
}

معیارهای موفقیت

  • accuracy و macro-F1 حداقل 0.8
  • شکل و تعداد و نوع پیش‌بینی‌ها مطابق ورودی
  • ارزیابی روی دو تقسیم تصادفی مستقل؛ برچسب test به کد ارسال نمی‌شود.

کتابخانه‌ها: pandas, scikit-learn, numpy

منبع و وضعیت دیتاست‌ها

diabetes.csv · CC BY 4.0 · Islam et al. (2020), Early Stage Diabetes Risk Prediction, UCI, doi:10.24432/C5VG8H. Categories encoded 0/1; educational only.

https://archive.ics.uci.edu/static/public/529/early+stage+diabetes+risk+prediction+dataset.zip

نسخه محلی همراه پروژه؛ ۵۲۰ ردیف. هنگام اجرا دانلود خارجی لازم نیست.

برای نوشتن و اجرای کد وارد شوید