مقایسه الگوریتم‌های هوشمند در شناسایی بیماری دیابت

 

یکی از مشکلاتی که در حال حاضر بیماران دیابتی با آن روبرو هستند ضعف در تشخیص این بیماری در مراحل ابتدایی آن می¬باشد به همین منظور در این مقاله سعی شده است با استفاده از برخی الگوریتم¬های هوشمند که عبارتند از SVM، Naive Bayse، C4.5، Random Forest، و همچنین ترکیب این الگوریتمها با دسته¬بندی کننده تجمعی Bagging و استفاده از 8 ویژگی به همراه نمونه¬ها در پایگاه¬داده استاندارد، که هر یک بازگو کننده افراد سالم و مبتلا به بیماری دیابت می¬باشند به تشخیص وجود یا عدم وجود بیماری دیابت با توجه به معیارهای دقت و سرعت عمل الگوریتم¬های هوشمند در تشخیص این بیماری خواهیم پرداخت.

مقدمه

 

بيماري ديابت يكي از شايعترين بيماريهاي حاضر دنيا شناخته شده است كه علي رغم گستردگي شيوع اين بيماري هنوز روشي به منظور ريشه¬كن كردن و از بين بردن آن در دنيا شناخته نشده است هرچند كه روش¬هاي مختلفي جهت تشخيص و كنترل آن در حال حاضر مورد استفاده قرار مي¬گيرد. از جمله عوارضي كه به دنبال مبتلا شدن افراد به اين بيماري گريبانگير آنها خواهد شد ميتوان به گرفتگي عروق قلبي و در نوع پيشرفته آن به نابينايي، قطع اعضاي بدن، اختلالات فكري و غيره اشاره نمود.
بيماري ديابت را از نظر تقسيمبندي ميوان به دو نوع وابسته به انسولين(IDDM) كه در اين نوع لوزالمعده شخص مبتلا به ديابت قادر به ترشح انسولين نميباشد و يا نوع غير وابسته به انسولين(NIDDM) كه در آن لوزالمعده شخص مبتلا به ديابت قادر به توليد و ترشح انسولين مي¬باشد اما ميزان جذب آن در بدن بسيار اندك است.
مشكل عمده¬اي كه در رابطه با بيماري ديابت وجود دارد عدم تشخيص به موقع و يا بهطور كلي ضعف در تشخيص اين بيماري است كه اين ضعف نيز به¬دليل عدم انتخاب الگوي مناسب توسط پزشك و يا عدم استفاده مناسب از الگوهاي استاندارد است. بنابراين پياده¬سازي روشي كه بتواند هر فرد را در تشخيص صحيح ابتلا يا عدم ابتلا به اين بيماري ياري رساند مي¬تواند گام مهمي در جهت پيشگيري و كنترل اين بيماري به¬خصوص در مراحل ابتدايي آن باشد.
تاكنون روش¬هاي هوشمند گوناگوني به منظور حل اين مشكل بنيادي در سراسر جهان ارائه گرديده كه از آن جمله مي¬توان به استفاده از روش¬هاي تكاملي[1] و نيز استفاده از روش الگوريتم¬هاي فازي تشخيص الگو در استخراج ويژگي[2]و[3] و همچنين استفاده از روش شبكه¬هاي عصبي RBF [4] اشاره نمود. در اين مقاله سعي شده است با استفاده از الگوريتم¬هاي SVM، Naive Bayse، C4.5، Random Forest و همچنين تركيب اين الگوريتم¬ها با Bagging بر روي پايگاه داده استاندارد ديابت[5] بتوان الگويي در جهت تشخيص بيماري ديابت و بهبود آن از ديد زمان و دقت ارائه نمود.

معیارهای جهانی تشخیص بیماری دیابت
معیارهای جهانی تشخیص بیماری دیابت که توسط سازمان بهداشت جهانی گردآوری شده¬¬اند شامل موارد زیر می¬باشند:
تعداد دفعات وضع حمل؛
غلظت گلوکوز پلاسمای خون؛
فشار دیاستوک(mm Hg)؛
ضخامت پوست ماهیچه سه سربازویی(mm)؛
انسولین سرم دوساعته(mu U/ml)؛
شاخص جرم بدن؛
داشتن سابقه دیابت؛
سن.

دسته¬بندی کننده Bagging

Bagging(متراکم شدن خودکار) توسط لئوبریمن در سال 1994 پیشنهاد شد که برای بهبود دادن رده بندی توسط ترکیب کردن رده¬بندی¬های مجموعه¬های آموزشی به طور تصادفی تولید شده، می-باشد.
این روش یک متا الگوریتم می¬باشد که برای بهبود دادن یادگیری ماشین رده¬بندی و مدل¬های پسرفتی بر حسب پایداری و دقت رده-بندی می¬باشد. این روش همچنین واریانس را کاهش داده و به دوری از اورفیتینگ کمک می¬کند. اگر چه این روش در درخت تصمیم به¬کار می¬رود اما می¬تواند در هر نوع مدل استفاده شود. Bagging یک حالت مخصوص از روند مدل میانگین میباشد.
یک مجموعه آموزشی استاندارد D به اندازه n را فرض کنید، Bagging توسط نمونه¬گیری به¬طور یکنواخت و باجایگزینی مثال¬ها از D، m مجموعه آموزشی جدید Di با اندازه تولید می-شود. نمونه¬گیری با جایگزینی این امکان را می¬دهد که بعضی از مثال¬ها امکان تکرار در هر Di را داشته باشند. اگر n=n’ باشد لذا برای n بزرگ، مجموعه Di انتضار داشتن %63.2 از مثال¬های بی-همتای D را دارد و بقیه مثال¬ها تکراری می¬باشند. این نوع نمونه-گیری به عنوان نمونه¬گیری هورراه¬انداز شناخته می¬شود. M مدل برای استفاده کردن m نمونه‌های خودکار بالا گنجانیده شده و این مدل¬ها توسط متوسط¬گیری خروجی یا رای گیری(برای رده¬بندی) ترکیب میشوند.
از آنجایی¬که این روش چندین پیشگویی کننده را میانگین می¬گیرد، لذا برای بهبود مثال¬های خطی مفید نمی¬باشد.
Bagging مفهومی‌برای ترکیب رده¬بندی¬های پیش¬بینی شده از چند مدل به¬کار می¬رود.

دسته بندی کننده Naive Bayse

هدف ما در اين بخش ايجاد قانوني¬ست که قادرمان سازد اعضاي بعدي را در يك دسته قرار دهيم و اينكار را تنها با داشتن بردارهايي از متغييرهاي توصيف كننده اجسام بعدي مي¬توانيم انجام دهيم. مشكلاتي از اين نوع كه دسته¬بندي نظارت شده نام دارند و روش¬هاي بسياري براي ايجاد چنين قوانيني بوجود آمده¬اند. يك روش بسيار مهم روش بيز ساده است كه بيز سطحي، بيز ساده، و بيز مستقل نيز ناميده مي¬شود. اين روش به دلايل متعددي اهميت دارد. ساخت آن بسيار ساده است و نيازي به برنامه¬هاي تخمين پارامتر تكرار شونده پيچيده ندارد. يعني از آن مي¬توان براي مجموعه داده¬هاي وسيع استفاده كرد و در نهايت اين روش معمولاً فوق¬العاده عمل مي¬كند. ممكن است بهترين دسته¬بندي كننده ممكن در يك كاربرد خاص نباشد اما اغلب مي¬توان به قوي بودن و عملكرد عالي آن اطمينان كرد.

قوانين اصلي در Naive Bayse

براي راحتي تفسير در اينجا دو دسته را در نظر مي¬گيريم كه به-صورت i=0 and 1 رتبه¬بندي مي¬شود. هدف ما استفاده از يك مجموعه اعضاي اوليه با عضويت¬هاي دسته شناخته شده(مجموعه آموزشي) براي ايجاد يك امتياز است به¬طوري¬كه امتيازات بالاتر با اعضاي دسته 1 مرتبطند و امتيازات كوچك¬تر با اعضاي دسته 0 در ارتباطند. بنابراين دسته¬بندي با مقايسه اين امتيازات با يك آستانه به¬دست مي¬آيد. اگر ما P(i|x) را اين احتمال تعريف كنيم كه يك عضو با بردار مكان x = (x1,…,xp) به دسته i تعلق داشته باشد، هر عملكرد يكنواخت P(i|x) يك امتياز مناسب ايجاد خواهد كرد. بطور ويژه نسبت P(1|x) P(0|x) مناسب خواهد بود. احتمال ابتدايي به مامي¬گويد كه P(i|x) را به نسبت p(i) / f(x|i) تجزيه كنيم كه در آن f(x|i) توزيع شرطي x براي اجسام دسته i است و p(i) احتمال تعلق يك عضو به دسته i است در صورتيكه ما چيز بيشتري درباره آن ندانيم (احتمال اوليه دسته دسته i). يعني نسبت به اين صورت در مي¬آيد:
(1)
براي استفاده از اين نسبت در دسته بندي¬ها ما نياز به تخمين f(x|i) و P(i) داريم.
اگر مجموعه آموزشي يك نمونه تصادفي از جمعيت كل باشد P(i) را مي¬توان مستقيماً از جمعيت اجسام دسته i محاسبه كرد. براي محاسبه f(x|i) روش بيز ساده اينطور در نظر مي¬گيرد كه اعضاي x مستقل¬اند، سپس هر يك از توزيعات يكنواخت را جداگانه اندازه¬گيري مي¬كند. بنابراين مشكل چند شكلي P بعدي به مشكلات اندازه¬گيري يك شكلي كاهش مي¬يابد. تخمين يك شكلي آشنا و ساده بوده و به اندازه¬هاي مجموعه يادگيري كوچكتري براي دستيابي به اندازه¬هاي درست نيازمند است. اين يكي از جذابي¬هاي خاص و نيز منحصربه فرد روش بيز ساده است: تخمين ساده، و بسيار سريع بوده و به برنامه-هاي اندازه¬گيري تكرار شونده پيچيده نياز ندارد.
اگر توزيع حاشيه¬اي مجزا باشد و هر xj تعداد اندكي از ارزش¬ها را شامل شود، اندازه یک اندازه گیرنده سابقه نمای چند جمله¬ایست که تنها نسبت اعضای دسته i را که در یک سلول قرار می¬گیرند محاسبه می¬کند. اگر ادامه داشته باشند، یک روش رایج تقسیم آن¬ها به فواصل کوچک¬تر و استفاده مجدد از اندازه گیرنده چند جمله¬ای است اما انواع پیشرفته¬تر آن که بر پایه اندازه¬های مداوم هستند(مانند اندازه¬های هسته) نیز مورد استفاده قرار می¬گیرند نسبت داده شده به این صورت در می¬آید:
(2)اکنون با یادآوری این¬که هدف ما تنها معرفی یک امتیاز بود که بطور یکنواخت به P(i|x) مرتبط باشد، می¬توانیم از آن لگاریتم بگیریم.
(3)اگر ما و یک مداوم را تعریف کنیم می¬بینیم که نسبت معادله بالا شکل ساده زیر را می-گیرد:
(4)بطوری¬که دسته¬بندی ساختار ساده¬ای دارد.فرض استقلال xj هر دسته مشخص در مدل بیز ساده ممکن است زیادی سخت¬گیرانه به نظر برسد. با این وجود در واقع فاکتورهای مختلفی ممکن است وارد بازی شوند که به این معناست که فرض آنقدر که به نظر می¬رسد مضر نیست.اول این¬که، یک مرحله انتخاب متغییر اولیه معمولاً اتفاق می¬افتد که در آن متغییرهای بسیار مرتبط با یکدیگر در زمینه¬هایی که ممکن بود به شباهت جدایی بین دسته¬ها کمک کنند رفع شدند. دوم این¬که، در نظر گرفتن ارتباطات به عنوان صفر یک مرحله نظم¬دهی مشخص فراهم می¬کند که باعث کاهش واریانس مدل و دسته¬بندی¬های درست¬تر می¬شود. سوم این-که، در برخی موارد وقتی متغیرها به هم مرتبط هستند سطح تصمیم¬گیری بهینه با سطح ایجاد شده تحت فرض مستقل تصادف می¬کند بطوری¬که ایجاد فرض به هیچ عنوان زیان¬بار نیست. چهارم این¬که، مسلماً سطح تصمیم ایجاد شده توسط مدل بیز ساده می-تواند یک شکل غیر خطی پیچیده داشته باشد.

دسته¬بندی کننده SVM
این الگوریتم از روش¬های یادگیری باناظر است که از آن برای طبقه-بندی و رگرسیون استفاده می¬کنند.
این روش از جمله روش¬های نسبتاً جدیدی است که در سال¬های اخیر کارایی خوبی نسبت به روش¬های قدیمی¬تر برای طبقه¬بندی از جمله شبکه¬های عصبی پرسپترون نشان داده است. مبنای کاری دسته¬بندی کننده¬ی SVM دسته¬بندی خطی داده¬هاست و در تقسیم خطس داده¬ها سعی بر آن است خطی انتخاب شود که حاشیه اطمینان بیشتری داشته باشد. حل معادله¬ی پیدا کردن خط بهینه برای داده¬ها به وسیله روش¬های QP که روش¬های شناخته شده¬ای در حل مسائل محدودیت¬دار هستند صورت می¬گیرد.قبل از تقسیم خطی برای این¬که ماشین بتواند داده¬های باپیچیدگی بالا را دسته¬بندی کند داده¬ها را باید به وسیله توابع phi به فضای با ابعاد خیلی بالاتر برد]6[.
این الگوریتم دارای مبانی نظری قوی و بی¬نقصی می¬باشد، فقط به یک دوجین نمونه احتیاج دارد و به تعداد ابعاد مسأله حساس نمی-باشد. همچنین متدهایی کارآمد برای یادگیری SVM به سرعت در حال رشد هستند. در یک فرایند یادگیری که شامل دو کلاس می-باشد، هدف SVM پیدا کردن بهترین تابع برای طبقه¬بندی می¬باشد به نحوی که بتوان اعضای دو کلاس را در مجموعه داده¬ها از هم تشخیص داد. معیار بهترین طبقه¬بندی به¬صورت هندسی مشخص می¬شود، برای مجموعه داده¬هایی که به¬صورت خطی قابل تجزیه هستند. به¬طور حسی آن مرزی که به¬صورت بخشیاز فضا تعریف می-شود یا همان تفکیک بین دو کلاس بوسیله hyperplane تعریف می¬شود. همین تعریف هندسی به ما اجازه می¬دهد تا کشف کنیم که چگونه مرزها را بیشینه کنیم ولو اینکه تعداد بیشماری hyperplane داشته باشیم و فقط تعداد کمی، شایستگی راه حل برای SVM دارند دلیل اینکه SVM روی بزرگ¬ترین مرز برای hyperplane پافشاری می¬کند این¬ست که قضیه قابلیت عمومیت بخشیدن به الگوریتم را بهتر تامین می¬کند. این نه تنها به کارایی طبقه¬بندی و دقت آن روی دده¬های آزمایشی کمک می¬کند، فضا را نیز برای طبقه¬بندی بهتر داده¬های آتی مهیا می¬کند.
یکی از مشکلات SVM پیچیدگی محاسباتی آن است. با این¬حال این مشکل به¬طور قابل قبولی حل شده است. یک راه¬حل این است که یک مسأله بهینه¬سازی بزرگ را به یک سری از مسائل کوچک¬تر تقسیم کرد که هر مسأله شامل یک جفت با دقت انتخاب شده از متغیرها که مساله بطور موثر بتواند از آن¬ها بهره ببرد. این پروسه تا زمانی که همه این قسمت¬های تجزیه شده حل شوند ادامه خواهد داشت.

6 – دسته¬بندی کننده Random Forestاز جمله دسته¬بندهایی که متد Bagging را به کار می¬گیرد Random Forest است که حاوی چندین درخت تصمیم می¬باشد و خروجی آن از خروجی¬های درخت¬های انفرادی به دست می¬آید. این الگوریتم متد Bagging را با انتخاب تصادفی ویژگی¬ها ترکیب می¬کند تا مجموعه¬ای از درخت¬های تصمیم با تنوع تحت کنترل ایجاد گردد. دقت بسیار بالای دسته¬بند از مزایای آن است، ضمن این¬که می¬تواند با تعداد زیاد ورودی به¬خوبی عمل کند]7[.

7 – دسته¬بندی کننده C4.5الف- توصیف الگوریتمC4.5 یک الگوریتم نیست بلکه مجموعه¬ای از الگوریتم¬هاست. توصیف کلی چگونگی کارکرد C4.5 در شکل(1) نشان داده شده است. همه روش¬های استنتاج درخت از گره ریشه آغاز می¬شوند که همه اطلاعات داده شده را ارائه می¬دهد و بطور بازگشتی اطلاعات را به مجموعه¬های کوچک¬تری تقسیم¬بندی می¬کند. و این¬کار را به وسیله آزمایش هر نسبت در هر گروه انجام می¬دهد. درختان فرعی، دسته¬بندی¬های مجموعه اطلاعات اصلی را نشان می¬دهند که آزمایشات ارزش¬گذاری نسبت¬های مشخص شده را تکمیل می¬کنند. این فرایند معمولاً تا خالص¬سازی مجموعه¬ها ادامه می¬یابد، یعنی همه نمونه¬ها در یک دسته قرار می¬گیرند و در این زمان رشد درخت متوقف می¬گردد.

ب- قوانین دسته¬بندی کننده¬هاC4.5 یک لیست از قوانین در قالب یک فرم معرفی می¬کند. قوانین برای هر کلاس با هم گروه¬بندی می¬شوند یک نمونه با پیدا کردن اولین قانون، به موقعیت امن می¬رود و اگر قانونی برای نمونه پیدا نشد به کلاس پیش فرض می¬رود. فایده مجموعه قوانین C4.5 در مقدار زمان CPU و حافظه مورد نیاز است.

 

دانلود فایل اصلی

مقایسه الگوریتم‌های هوشمند در شناسایی بیماری دیابت

لینک

دیدگاه‌ خود را بیان کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

6 + one =