بخشی از مقاله
چکیده
در سال های اخیر استفاده از روش های داده کاوی در تشخیص پزشکی روز به روز در حال گسترش بوده است. کبد یکی از اعضای مهم بدن انسان می باشد که عدم فعالیت درست ان سبب خواهد شد تا اعضای دیگر بدن نیز به درستی نتوانند به فعالیت خود ادامه دهند. در این پژوهش، روشی جدید جهت تشخیص اختلالات کبدی مبتنی بر حذف داده های پرت و همجوشی طبقه بندی کننده ها ارائه شده است. به این منظور بعد از حذف داده های پرت، با استفاده از شبکه عصبی پس انتشار آموزش دیده با الگوریتم BP و فراابتکاری، ماشین بردار پشتیبان و نزدیکترین همسایه تشخیص انجام شده، سپس نتایج این الگوریتم های طبقه بندی با هم ترکیب شده اند. نتایج نشان می دهد که روش پیشنهادی توانسته است نسبت به روش های دیگر، دقت قابل قبولی را ارائه نماید.
کلمات کلیدی:اختلالات کبدی، شبکه عصبی، الگوریتم بهینه سازی فاخته، ماشین بردار پشتیبان، نزدیکترین همسایه، همجوشی اطلاعات، داده های پرت
-1 مقدمه
اخیرا روش های داده کاوی در تشخیص بیماری ها بسیار مفید واقع شده است. هدف داده کاوی در پزشکی یافتن راه حل هایی برای تشخیص بیماری ها با خطای کمینه است. کبد یکی از مهمترین اعضای داخلی در بدن انسان است و مسئولیت بیشتر از صد فعالیت در بدن انسان را برعهده دارد. بنابراین تشخیص بیماری های مربوط به آن، یک مسئله مهم می باشد . مسائل مربوط به اختلالات کبدی در مراحل اولیه به راحتی تشخیص داده نمی شود. تشخیص زودرس این اختلالات می تواند باعث افزایش امید به زندگی در این بیماران شود. بیماری های کبدی می تواند به وسیلهی آنالیز سطح آنزیم در خون تشخیص داده شود. محققان زیادی به تشخیص این بیماری با استفاده از روش های داده کاوی پرداخته اند.
این افراد معمولا از یکی از مجموعه داده های عمومی به نام LUیا ILPD استفاده نموده اند. شبکه های عصبی در تشخیص این اختلالات بسیار مورد استفاده قرار گرفته است . تیواری و همکاران [1] از شبکه عصبی جهت تشخیص اختلالات کبدی بهره برده اند. آن ها از مجموعه داده های ILPD استفاده نموده اند. برای انجام آزمایشات ،دقت برای مردها و زن ها به طور جداگانه محاسبه شد. درخت تصمیم نیز در بعضی از پژوهش ها مورد استفاده قرار گرفته است. هیوناتی از درخت تصمیم کارت برای تشخیص اختلالات کبدی استفاده نمود.[2] در بسیاری از کاربردها، ماشین بردار پشتیبان به عنوان یک الگوریتم طبقه بندی قوی مورد استفاده قرار گرفته است. لی و همکاران[3]، یک ماشین بردار پشتیبان جدید مبتنی بر یک کرنل غیرخطی معرفی کرده است. سپس این روش جدید را بر روی مجموعه داده های LU آزمایش کرده است.
در کار دیگری ، از یک ماشین بردار پشتیبان به همراه الگوریتم بیزین جهت تشخیص اختلالات کبدی استفاده شده است.[4]همجوشی طبقه بندی کننده ها، یکی از راه های افزایش دقت تشخیص در طبقه بندی کننده ها می باشد. همجوشی طبقه بندی کننده ها علاوه بر افزایش دقت ، باعث افزایش اطمینان به نتایج خواهد شد. در این پژوهش، روشی جدید برای تشخیص اختلالات کبدی بر پایه ی همجوشی طبقه بندی کننده ها ارائه شده است. به این منظور ابتدا، روش پیشنهادی توضیح داده خواهد شد. سپس به بیان نتایج کار و مقایسه آن با کارهای دیگران می پردازیم. در نهایت نتیجه گیری و پیشنهاداتی جهت ادامه کار توضیح داده خواهد شد.
-2 روش پیشنهادی
در این پژوهش، روشی جدید مبتنی بر حذف داده های پرت و همجوشی طبقه بندی کننده ها ارائه شده است. در زیر اجزای اصلی الگوریتم پیشنهادی توضیح داده شده است.
-1-2 جایگزین کردن مقادیر گمشده
برای جایگزینی مقادیر گمشده از روشی مبتنی بر نزدیکترین همسایه استفاده شده است. به این منظور مقادیر گمشده با میانگین k نزدیکترین همسایه جایگزین می شود. برای یافتن نزدیکترین همسایه ها از فاصله اقلیدسی استفاده شده است.
-2-2 داده های پرت
منظور از داده های پرت، داده هایی هستند که از بقیه داده ها فاصله زیادی دارند. روش های های مختلف مدل سازی در داده کاوی، داده های پرت را به عنوان نویز می شناسند هر چند که در بعضی کاربردها چنین چیزی صحیح نیست و داده های پرت داده های مفیدی می باشند - مثلا تشخیص تقلب - .در اینجا داده هایی که فاصله ان ها نسبت به سایر داده ها از دو برابر جمع میانگین و انحراف معیار بیشتر است حذف شده است.
-3-2 طبقه بندی کننده
در این مرحله، از سه طبقه بندی کننده و همجوشی آن ها جهت مدل سازی داده ها استفاده شده است.
-1-3-2 شبکه های عصبی
شبکه های عصبی نوعی مدل طبقه بندی است که از واحدهای پرداشی کوچکی به نام نرون تشکیل شده است. شبکه های عصبی از تعداد زیادی واحدهای پردازشی به هم متصل تشکیل شده است که می توانند داده های ورودی را با عبور از این واحدهای پردازشی به خروجی نگاشت کنند. یک شبکه عصبی با استفاده از 3 جز مشخص می شود:
1.نرون : کوچکترین جز سازنده یک شبکه عصبی
2.معماری : یک مجموعه از نرون ها و اتصالات بین آن ها معماری شبکه عصبی را می سازند.
3.قانون یادگیری : مقدار وزن های هر اتصال بین نرون ها با استفاده از قانون یادگیری مشخص می شود. شکل 1 یک شبکه عصبی پس انتشار با یک لایه میانی را نشان می دهد.
یکی از محبوب ترین روش ها جهت یادگیری شبکه عصبی، روش پس انتشار خطا1 است. این الگوریتم دارای دو قسمت اصلی است. در ابتدا الگوهای ورودی وارد شبکه شده و با گذر از توابع فعالیت، یک خروجی تولید می کنند. در مرحله دوم به طور عقبگرد، مقدار خطای به وجود امده از هر گره محاسبه شده و با توجه به خطا وزن ها بروزرسانی می شود .[5]روش پس انتشار خطا به علت استفاده از گرادیان دارای مشکلاتی می باشد. یک از این مشکلات گیر کردن در خطای مینیمم محلی است. برای رفع این مشکل می توان از الگوریتم های فراابتکاری استفاده نمود. یکی از جدیدترین الگوریتم های فراابتکاری، الگوریتم بهینه سازی فاخته[6] می باشد.
این الگوریتم از فرایند تخم گذاری غیرعادی گونه ای از پرندگان به نام فاخته الهام می گیرد. در این الگوریتم دو نوع فاخته وجود دارد: فاخته های بالغ و تخم ها. فاخته های بالغ تخم های خود را در لانه پرندگان دیگر می گذارند. اگر این تخم ها شبیه تخم های آن پرنده باشند تخم ها امکان رشد خواهند داشت اما اگر این تخم ها شباهتی با تخم های بالغ نداشته باشند تخم ها از بین خواهند رفت. فاخته های بالغ به دنبال یافتن بهترین مکان برای گذاشتن تخم ها ی خود می باشند. راه حل مسئله در این الگوریتم به صورت " محل سکونت" کد می شود. محل سکونت در این الگوریتم مشابه کروموزوم در الگوریتم ژنتیک می باشد. ساختار هر محل سکونت جهت آموزش شبکه عصبی در شکل 2 نشان داده شده است. همچنین هزینه محل سکونت با استفاده از دقت طبقه بندی کننده به دست امده است.[7]
-2-3-2 ماشین بردار پشتیبان
ماشین بردار پشتیبان نوع طبقه بندی کننده برای داده های خطی و غیرخطی است. این طبقه بندی کننده داده ه ها را به فضایی با ابعاد بالاتر نگاشت می کند و در فضای جدید به دنبال یک ابر خط جدا کننده می گردد. فرض کنید داده ها جداپذیر خطی می باشند. تعداد نامحدود ابرصفحه وجود دارد که می تواند این داده ها را از هم جدا کند - شکل - 3 همه این ابرصفحه ها می توانند داده ها را به درستی طبقه بندی کنند اما طبقه بندی کننده با بیشترین حاشیه توانایی بیشتری در طبقه بندی داده ها دارد. ماشین بردار پشتیبان به دنبال یافتن یک ابرصفحه با حاشیه ماکزیمم است.مسئله بالا یک مسئله بهینه سازی غیرخطی است. برای حل این مسئله می توان از روش های مختلفی در بهینه سازی ریاضی و ایتکاری استفاده نمود. برای تبدیل ماشین بردار پشتیبان خطی به غیرخطی، می توان از توابع کرنل استفاده نمود. به این منظور ابتدا بردار ویژگی ها با استفاده از تابع کرنل به فضای جدید نگاشت می شوند سپس یک ابرصفحه جداکننده خطی، داده ها را از هم جدا می نماید.
-3-3-2 نزدیکترین همسایه
برای طبقه بندی یک نمونه جدید در الگوریتم نزدیکترین همسایه، k بردار آموزشی نزدیک به نمونه آموزشی پیدا می شود. نزدیکترین داده های آموزشی با استفاده از فاصله اقلیدسی پیدا می شود. فاصله اقلیدسی برای نمونه صورت زیر تعریف شده است:شکل 4 یک طبقه بندی کننده KNN را نشان می دهد که نمونه ها در فضای دوبعدی می باشند. توجه کنید که با 1-NN نمونه ها در کلاس - طبقه بندی می شوند در حالی که با استفاده از 5-NN نمونه ها در کلاس + قرار قرار خواهند گرفت.
-4-3-2 همجوشی طبقه بندی کننده ها
هدف اصلی از ترکیب یا همجوشی طبقه بندی کننده ها، بهبود کارایی طبقه بندی کننده ها و افزایش اعتماد به نتایج است. در این پژوهش، از یک روش رای گیری وزن دار جهت همجوشی طبقه بندی کننده ها استفاده شده است. در رای گیری وزن دار، هر طبقه بندی کننده دارای یک وزن می باشد. وزن در اینجا، دقت طبقه بندی کننده ها در نظر گرفته شده است. کلاس با بیشترین رای به عنوان کلاس نهایی در نظر گرفته می شود. شکل 5 ساختار کلی فرایند همجوشی طبقه بندی کننده ها را نشان می دهد.