بخشی از مقاله
چکیده :
پیش بینی جزء لاینفک فرآیند تصمیم گیری می باشد و رابطه مستقیمی با ریسک تصمیم گیری دارد. با توجه به گسترش روز افزون روش های پیش بینی در تشخیص عوارض ناشی از بیماری ها، تحقیق در این زمینه از اهمیت زیادی برخوردار است. با توجه به گسترش بیماری دیابت در سراسر جهان، پیش بینی عوارض ناشی از آن می تواند نقش مهمی در کنترل بیماری ایفا کند، در این تحقیق سعی شده است مدلی ارائه شود تا بر اساس آن عوارض کلیوی ناشی از بیماری دیابت با دقت بالایی پیش بینی شود. جدول داده ها شامل اطلاعات پرونده های بیماران دیابتی درمانگاه مطهری شیراز است که شامل 28 فیلد می باشد. انتخاب فیلدها به دو روش ، بر اساس فیلدهای تعیین شده توسط پزشک و به روشی جدید با کمک الگوریتم ژنتیک و بر اساس وابستگی فیلدها به فیلد کلاس انجام می شوند. جهت بررسی اعتبار سنجی از 10-Fold Cross Validation استفاده گردیده است. به منظور پیش بینی عملکرد از الگوریتم نزدیکترین همسایگی وزن دار و به منظور افزایش کارایی از روش بهبود پارامتر K در الگوریتم نزدیکترین همسابگی استفاده شده است. نتایج نشان می دهد مدل ترکیبی در پیش بینی روند عوارض ناشی از دیابت به خوبی عمل می کند.
کلید واژهها: الگوریتم ژنتیک، الگوریتم نزدیکترین همسایگی. پیش بینی، دیابت، عوارض کلیوی
-1 مقدمه
کشف دانش از پایگاه داده های پزشکی به منظور تشخیص بیماری ها و عوارض ناشی از آنها بسیار مهم است. در سالیان اخیر کاربرد روشهای دادهکاوی در پزشکی و مراقبتهای بهداشتی وسیعتر شده است. بدین ترتیب یکی از محبوب ترین حوزه های که داده کاوی در آن کاربردهای وسیعی پیدا کرده است، حوزه های پزشکی و مراقبت های بهداشتی است. یکی از بیشترین کاربردهای روش های داده کاوی در پزشکی، تشخیص بیماری ها و عوارض ناشی از آنها است. دیابت یا بیماری قند یک اختلال در سوخت و ساز بدن است. در این بیماری توانایی تولید انسولین در بدن از بین می رود و یا بدن در برابر انسولین مقاوم شده و بنابراین انسولین تولیدی نمی تواند عملکرد طبیعی خود را انجام دهد.[4] بیماری های کلیه از یافته های شایع در بیماران دیابتی است. حدود نیمی از بیماران دیابتی در طول عمر خود علایم صدمه کلیوی را نشان می دهند.
بیماری کلیه عارضه جدی است که می تواند منجر با کاهش طول و کیفیت عمر شود. نفروپاتی دیابتی شایعترین عارضه کلیوی دیابت است. نفروپاتی دیابتی به افزایش پیشرونده دفع پروتئین از ادرار گفته می شود که در بیماران مزمن دیابتی دیده شده و منجر به کاهش عملکرد کلیه و در نهایت نارسایی کلیه می شود. عوامل خطر نفروپاتی دیابتی عبارت است از طول مدت ابتلا به دیابت، کنترل قند ضعیف، فشار خون بالا، جنسیت، چاقی و مصرف سیگار. نفروپاتی مراحلی دارد که برای تشخیص و تعیین بیماری کاربرد دارد. در مراحل اولیه بروز نفروپاتی دفع پروتئین آلبومین در مقادیر اندک - میکروآلبومینوری - از ادرار ایجاد می شود. میزان دفع به تدریج افزایش می یابد تا در طی پیشرفت نفروپاتی به دفع واضح پروتئین از ادرار منجر شود و لذا نارسایی کلیه در مراحل آخر بیماری آشکار میشود3]و.[2
آگاهی از عوارض دیابت به افراد مبتلا، در معرض خطر و همچنین اطرافیان آنها کمک می کند در پیگیری و پیشگیری بیماری همت بیشتری به خرج دهند و باعث به تعویق افتادن عوارض بیماری شوند. نوروزی و همکاران[4] یک مدل جدید بر اساس سیستم استنتاج عصبی-فازی تطبیقی - ANFIS - برای پیشرفت نارسایی کلیه و پیش بینی زمان نارسایی کلیه طراحی کردند و بر این اساس توانستند نرخ فیلترینگ کلیه ها - GFR - را با دقت بالاتر از 95 درصد برای 6و 12و 18 ماه پیش بینی کنند. جاردینا و همکاران[5] بیماری عروق کرونر قلب در افراد دیابتی را پیش بینی کردند و از یک مدل هیبریدی شامل الگوریتم ژنتیک و الگوریتم نزدیکترین همسایگی استفاده کردند و کروموزوم ها را یک بار به صورت تصادفی و یک بار بر اساس همبستگی اشان ایجاد نمودند و سپس هر کدام از آنها بوسیله الگوریتم نزدیکترین همسایگی بررسی شدند و تابع برازش آنها محاسبه گردید. نتایج نشان داد که روش وزن دهی بر اساس همبستگی بهترین میانگین اثربخشی را دارد.
بگیاشری و همکاران[6] رتینوپاتی را در بیماران مبتلا به دیابت پیش بینی کردند. ابتدا در مرحله پیش پردازش بدلیل اینکه عکس ها تار و ناواضح بودند، تغییر فضای رنگی و ترمیم عکس ها صورت گرفت و تصاویر ابتدا به تصاویر خاکستری تبدیل شدند و سپس فیلتر میانه تطبیقی - AMF - به منظور حذف نویز استفاده شد و در نهایت مناطق تیره تصویر روشنتر شدند و فیلدهای مورد نیاز برای بررسی از تصویر استخراج شده و بوسیله ماشین بردار پشتیبان و نزدیکترین همسایگی عمل طبقه بندی بیماران به مبتلا بودن به عارضه رتینوپاتی و یا بدون مشکل چشمی انجام گرفت. اکیل جبار و همکاران[7] به منظور پیش بینی بیماری قلبی در هند از الگوریتم ژنتیک به منطور انتخاب بهترین ویژگی ها استفاده کردند و دقت پیش بینی را توسط الگوریتم نزدیکترین همسایگی تعیین کردند و بر این اساس توانستند علاوه بر انتخاب ویژگی های موثر به دقت بالا تری نسبت به روش نزدیکترین همسایگی به تنهایی دست یابند.
-2 متدها و روش های مورد استفاده
به منظور پیش بینی عارضه نفروپاتی ابتدا به بررسی مجموعه داده ها و پیش پردازش مربوط به بیماران دیابتی کلینیک مطهری شیراز پرداخته سپس الگوریتم های ژنتیک و نزدیکترین همسایگی بررسی می شوند.
-1-2 گردآوری مجموعه داده ها
جدول داده ها شامل اطلاعات بیماران دیابتی کلینیک مطهری بیمارستان شیراز است و شامل 28 فیلد و 194 رکورد می باشد که فیلد 28 ام به عنوان کلاس در نظر گرفته شده است. از194 بیمار دیابتی 23 بیمار دارای عارضه نفروپاتی و 171 بیمار بدون این عارضه می باشند. جدول 1 ویژگی های مربوط به این بیماران را نشان می دهد.
-2-2 پیش پردازش داده ها
پیش پردازش داده ها به صورت زیر انجام می گیرد.
- 1 روشهای بسیاری برای پر کردن فیلدهای خالی ارائه شده است. در این مقاله فیلدهای خالی مربوط به قد و وزن بر اساس 5 رکورد از نزدیکترین همسایه ها پر شده است.[8] ابتدا از روش اعتبار سنجی cross-validation به ازاء k= 1' 2' 3' … استفاده می شود. با افزایش میزان K خطای طبقه بندی کاهش می یابد سپس میزان خطا تثبیت شده و با افزایش K میزان خطا افزایش می یابد. میزان K در شروع تثبیت خطا به عنوان K بهترین مقدار در نظر گرفته شده که مقدار آن در این مطالعه عدد 5 می باشد.
-2 مجموعه داده ها شامل فیلدهایی با محدودهای مختلفی از مقادیری ارزشی می باشد بنابراین از رابطه - - 1 برای نرمال کردن مقادیر فیلدها و تثبیت آنها در فاصله صفر تا یک استفاده شده است10]و.[9
-3 به منظور توازن کلاس حداقل نسبت به حداکثر از فیلتر SMOTE بر اساس 5 رکورد از نزدیکترین همسایه ها استفاده شده است. بعد از اعمال فیلتر، 171 نفر در کلاس بدون عارضه و 167 نفر در کلاس دارای عارضه قرار گرفته اند و تعداد رکوردها 338 عدد می گردد12]و.[11
-3-2 انتخاب ویژگی ها بر اساس الگوریتم ژنتیک و وزن دهی به ویژگی ها
باید توجه داشت که هرکدام از ویژگی ها در تشخیص و پیش بینی بیماری نفروپاتی در بیماران دیابتی از اهمیت خاصی برخوردار هستند. به عنوان مثال در تشخیص بیماری نفروپاتی دو ویژگی قند خون و کم خونی دارای اهمیت متفاوتی هستند. این که هر یک از ویژگی ها دارای چه ارزشی هستند و چقدر در تشخیص بیماری نقش دارند و اینکه با توجه به وزن ویژگی، انتخاب چه تعداد از آنها و کدام ویژگی ها باعث افزایش دقت پیش بینی می شود مساله مهمی است.
الگوریتم ژنتیک یکی از مشهورترین الگوریتم های، حل مسائل پیچیده با فضای حل وسیع می باشد. این الگوریتم برگرفته از مفاهیم زیستی است. الگوریتم از تکنیک های زیست شناسی فرگشتی مانند وراثت و جهش استفاده می کند. این الگوریتم برای اولین بار توسط جان هالند معرفی شد. در واقع الگوریتمهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیشبینی یا تطبیق الگو استفاده میکنند. الگوریتم ژنتیک روی مجموعه جوابهایی از فضای قابل قبول جستجو می کند. وسعت جستجوی عملگرهای الگوریتم ژنتیک کمک می کند تا به طور موثری جواب های کشف نشده در فضای جستجو شناسایی و تست شوند. احتمالی بودن ساختار مسئله با عملگرهای الگوریتم ژنتیک باعث می شود یک جواب بهتر کشف شود. وجود جمعیت های مختلف باعث می شود که احتمال گیر افتادن الگوریتم در یک نقطه بهینه محلی کاهش یابد.
گام های مختلف الگوریتم ژنتیک به گونه ای است که بعد ازاجرای تمامی گام ها دوباره به اولین قدم برگشته و تا رسیدن به یک جواب مطللوب عملیات تکرار می شود. ابتدا جمعیت اولیه که شامل تعدادی کروموزوم است ایجاد می شوند هر کروموزوم شامل تعدادی ژن است و هر ژن به صورت یک بیت در نظر گرفته می شود. در کروموزوم بیت یک نماینگر انتخاب فیلد از مجموعه داده ها و بیت صفر نماینگر عدم استفاده از آن فیلد می باشد و سپس مقدار تابع هدف به ازاء هر یک از کروموزوم ها در جمعیت محاسبه می شود. پس از بدست آوردن مقدار برازندگی یا تابع ارزیابی هر یک از اعضاء جمعیت، می توانیم نسل جدید را با توجه به نسل حاضر تولید کنیم.[13]
عمل انتخاب مشخص می کند که کدامیک از اعضاء نسل حاضر می توانند به عنوان والد در تولید نسل آینده شرکت کنند. این عمل طبق اصل بقاء اصلح صورت می گیرد. برای بهره برداری از مجموعه ژن با امید به تولید نسلی بهتر از نسل قبلی، عملگر جابجایی اعمال می گردد. عملگر جابجایی تک نقطه، اساسی ترین عملگرجابجایی است، بطوریکه پس از انتخاب جفت کروموزوم اول یعنی والدها، دو کروموزوم از محلی که بطور تصادفی انتخاب می شود، دو قطعه می شوند و قطعات جدا شده هر یک با دیگری ترکیب شده تا جفت دوم یعنی فرزندان تولید شوند. به کروموزوم های حاصل از عمل جابجایی و جهش، کروموزوم های فرزند گفته می شود.
به همین ترتیب می توانیم عملگر جابجایی n نقطه را تعریف کنیم. از عملگر جهش، به منظور تولید خود به خودی کروموزوم های جدید و جلوگیری از همگرا شدن و متوقف شدن الگوریتم در مینیمم - ماکزیمم - های محلی، استفاده می شود. عملگر جهش همانند عملگر جابجایی، با در نظر گرفتن یک عدد احتمال داده شده صورت می گیرد که به آن نسبت جهش می گوییم. معمولا نسبت جهش در سطح پایینی نگاه داشته میشود تا کروموزوم های خوب بدست آمده از عمل جابجایی، از بین نروند. پس از مشخص شدن ژنی که باید روی آن عمل جهش صورت گیرد، یکی از بیت های آن بطور تصادفی انتخاب شده و یکی از مقادیر 0 یا 1 را بخود اختصاص می دهد. این عمل معمولا با متمم کردن بیت صورت می گیرد14]و.[13 مراحل الگوریتم ژنتیک به ترتیب زیر می باشند. -1 تولید تصادفی جمعیت اولیه