تشخیص دیابت با دادههای آموزشی
طبقهبندی برچسب آموزشی با داده علائم؛ این تمرین ابزار تشخیص پزشکی نیست.
۱۰۰ دقیقه · ۲۴۰ 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 برای دستهبندی.
- request.json شامل train دارای برچسب و test بدون برچسب است؛ فایل CSV محلی برای مطالعه است و در ارزیابی به محیط ارسال نمیشود.
- train را به ویژگیها و target جدا کن؛ داده ارزیابی بیرونی را هرگز برای fit استفاده نکن.
- برای تمرین، با train_test_split و random_state=42 بخشی از train را نگه دار و مدل را با MAE یا accuracy/F1 بسنج.
- مدل یا Pipeline را فقط روی داده آموزش fit کن؛ سپس برای تمام سطرهای test پیشبینی کن.
- 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
نسخه محلی همراه پروژه؛ ۵۲۰ ردیف. هنگام اجرا دانلود خارجی لازم نیست.
