تشخیص بیماری قلبی

عنوان
تشخیص بیماری قلبی

۱. مقدمه

شاید بتوان تشخیص بیماری‌ها با استفاده از الگوریتم‌های هوش مصنوعی را مفیدترین و صلح‌آمیزترین کاربرد هوش مصنوعی تاکنون دانست. هوش مصنوعی کامپیوترها، می‌تواند حتی قبل از پزشکان، به تشخیص تعدادی از بیماری‌ها کمک کند اما تشخیص و تایید نهایی از جانب خود پزشک است. تشخیص برخی از بیماری‌ها ساده است و هر پزشکی می‌تواند با یک معاینه و شرح حال مختصر از عهده آن برآید. اما برای تشخیص تعداد دیگری از بیماری‌ها، تیزهوشی پزشک، یک استنتاج قوی ذهنی و آزمایشات دقیق لازم است. تعدادی از بیماری‌ها هم طوری هستند که به سبب ماهیت زیرپوستی و تدریجی خود، غالبا خیلی دیر تشخیص داده می‌شوند. از فعالیت‌های در این موضوع می‌توان سرویسFace2Gene1 و ابزارهایی برای تشخیص بیماری‌هایی نظیر اوتیسم2 و آلزایمر یا زوال عقل3 را نام برد.[1]
در این بین بیماری‌های قلبی – عروقی (CAD) رتبه نخست علت مرگ و میر در جهان را به خود اختصاص داده و بیشتر مردم دنیا هر ساله بیشتر از هر علت دیگری جان خود را به علت بیماری‌های قلبی و عروقی از دست می‌دهند، طبق برآورد صورت گرفته ۱۷.۵ میلیون نفر در جهان در سال ۲۰۱۲ بعلت بیماری‌های قلبی عروقی فوت نموده‌اند که ۳۱ درصد از کل موارد مرگ و میرها را شامل می‌شود، از این مرگ‌ها حدود ۷.۴ میلیون به بیماری عروق کرونر قلب و ۶.۷ میلیون ناشی از سکته های قلبی و مغزی بوده است. [2]
ما در این پروژه می‌خواهیم با زدن الگوریتم‌های داده کاوی و یادگیری ماشین بر روی داده‌های دانشگاه ایرواین به تشخیص بیماری قلبی بپردازیم.
داده‌کاوی4 به مفهوم استخراج اطلاعات نهان یا الگوها و روابط مشخص در حجم زیادی از داده‌ها در یک یا چند بانک اطلاعاتی بزرگ است. داده کاوی پیشرفت قابل ملاحظه‌ای را در نوع ابزارهای تحلیل موجود نشان می‌دهد اما محدودیت‌هایی نیز دارد. یکی از این محدودیت‌ها این است که با وجود اینکه به آشکارسازی الگوها و روابط کمک می‌کند اما اطلاعاتی را دربارهٔ ارزش یا میزان اهمیت آنها به دست نمی‌دهد. دومین محدودیت آن این است که با وجود توانایی شناسایی روابط بین رفتارها یا متغیرها لزوماً قادر به کشف روابط علت و معلولی نیست. موفقیت داده کاوی در گرو بهره‌گیری از کارشناسان فنی و تحلیل گران کار آزموده‌ای است که از توانایی کافی برای طبقه‌بندی تحلیل‌ها و تغییر آنها برخوردار هستند. توانایی‌های فنی در داده کاوی از اهمیت ویژه‌ای برخوردار اند اما عوامل دیگری نیز مانند چگونگی پیاده‌سازی و نظارت ممکن است نتیجه کار را تحت تأثیر قرار دهند پس در این آزمایش هوشمندی کد علاوه بر الگوریتم‌های به کار برده‌شده از اهمیت خوبی برخوردار است.[3]
ده الگوریتم برتر داده‌کاوی بیان شده در یک مقاله[10] سی4.55, خوشه‌بندی کی-میانگین6, ماشین بردار پشتیبانی7, الگوریتم آپریوری8, الگوریتم امید ریاضی–بیشینه کردن9, پیج‌رنک10, آدابوست11, الگوریتم کی‌نیرست12, الگوریتم کلاسه‌بندی نایوبیزین13 و الگوریتم کارت14 اند. کلاسه‌بندی یا دسته بندی‌ها به دو منظور استفاده می‌شوند: مدل‌های توصیفی و مدل‌های پیش‌بینی کننده.
به طور کلی در مقاله‌ای[11] به بررسی خلاصه کارها و الگوریتم‌های استفاده شده داده‌کاوی در زمینه پزشکی پرداخته است.

اکنون به بررسی تعدادی از کارهایی که تا کنون در این موضوع انجام شده‌اند می‌پردازیم.

۲. کارهای مرتبط

در مقاله‌ای [4] مراحل این تحقیق را پیدا کردن داده‌های آموزشی, اعمال الگوریتم‌ها بر روی آن, به‌دست‌آوردن مدل و در نهایت ارزیابی مدل یافت‌شده معرفی کرده‌است. سپس با اعمال سه الگوریتم درخت تصمیم15 جی4816, درخت لجیستیک17 و جنگل تصادفی18 و مقایسه آن‌ها مشاهده شد که الگوریتم جی48 حساسیت و دقت بالاتری نسبت به بقیه دارد که در کل با اعمال هرس کم کننده خطا19 بهتر از دو درخت دیگر جواب می‌دهد. در آخر با جی48 به 56.76 درصد دقت رسیده است.

از کارهای مهم برای داده‌کاوی انتخاب ویژگی‌های مناسب برای تحلیل است به خصوص زمانی که بخواهیم کلاس بندی انجام بدهیم. مقاله‌ای[5] در این موضوع به بررسی نتایج با دو روش انتخاب ویژگی‌ها بر اساس قوانین کامپیوتری20 یا CFS و انتخاب بر اساس معیارهای پزشکی21 یا MFS پرداخته‌است. معیار گرفتن هر کدام از این روش‌ها به تنهایی ممکن است باعث رسیدن به نتایج اشتباه بشود پس اعمال هر دو روش ضروری است. این مقاله هم مانند بقیه موارد تنها 14 مورد نام‌برده‌شده در قسمت قبل را استفاده کرده است. داده‌های ما یک برای بخش افراد سالم و چهار بخش برای افراد ناسالم دارد که در این مقاله پیشنهاد شده‌است که چهار گروه ناسالم را یک گروه در نظر بگیریم. سپس نتایج به‌دست‌آمده روی متغیرهایی که با دو معیار بالا انتخاب شده‌اند در دو حالت همه‌ی متغیرها و تنها متغیرهای پیوسته را مقایسه کرده که دقت, حساسیت و کاملیت در حالت تنها متغیرهای پیوسته بهتر و بیشتر بوده‌اند. این موضوع را می‌توان اینگونه توجیح کرد که متغیرهای گسسته مثل جنسیت از ابتدا یکسان بوده‌اند اما متغیر سن با گذر زمان تغییر می‌کند و امکان تغییر احتمال ابتلا به بیماری‌های قلبی را افزایش می‌دهد. در این مقاله و اکثر مقالات دیگر کلاسه بندی اس‌وی‌ام را روش خوبی برای دسته‌بندی نام‌برده‌اند که در این مقاله از راه بهینه‌سازی متوالی کمینه22
برای اس‌وی‌ام استفاده کرده‌است.

max \sum_1^n \alpha _{i} - 1/2 \sum_1^n \sum_1^n y_{i} y_{j} K( x_{i} , x_{j} ) \alpha _{i} \alpha _{j}

0 \leq \alpha _{i} \leq C
\sum_i^n y_{i} \alpha _{i} = 0

متغیرهای انتخابی این مقاله در جدول زیر قابل مشاهده‌اند:

از دیگر روش‌های نام برده شده انتخاب ویژگی‌ها در این مقاله می‌توان به موارد زیر اشاره کرد:

  1. روش حذفی عقب‌گردی23 [6]

  2. روش انتخاب ویژگی پوشش کننده با استفاده از چی‌اسکوئر24[7]

  3. استفاده هم‌زمان از چی‌اسکوئر و گین رشیو25 برای انتخاب ویژگی‌های مناسب[8]

  4. روش کرنل اف-اسکور26[9]

در مقاله‌ای دیگر [12] ویژگی‌ها به سه دسته‌ی مفید, تکراری و غیر مفید تقسیم‌بندی شده‌اند . در این مقاله از روش‌های پی‌سی‌ای27 و چی‌اسکوئر تست برای انتخاب ویژگی‌ها استفاده‌شده‌است. روش پی‌سی‌ای در تشخیص چهره, تشخیص الگو, مقایسه تصاویر و داده‌کاوی کاربرد دارد. مراحل این روش به شرح زیراند:

  • فراهم سازی ماتریس ورودی‌ها

  • کم کردن میانگین در همه‌ی ابعاد

  • به‌دست‌آوردن ماتریس کواریانس از نتیجه‌ی مرحله‌ی قبل

  • به‌دست آوردن مقدارویژه و بردار ویژه

  • ساختن وکتوری از ویژگی‌ها

  • استخراج پایگاه‌داده‌ی جدید

    T \big(v\big) = \lambda v

    تست چی‌اسکوئر تستی برای تشخیص ویژگی‌های مرتبط و مفید است. فرمول چی‌اسکوئر در زیر قابل مشاهده است.
    متغیر oتکرار رویت شده و Eتکرار مورد انتظار است
    x_{r} ^{2} = \frac{ \sum_.^. ( O_{i} - E_{i} )^{2} }{ E_{i}}

    در این مقاله روش شبکه‌های عصبی همراه با الگوریتم‌های انتخاب ویژگی بالا امتحان شده‌است. شبکه‌های عصبی به سه قسمت ورودی, قسمت نهان و خروجی تقسیم می‌شوند. کار اصلی شبکه‌های عصبی پیش‌بینی است. از فواید شبکه‌های عصبی نام‌برده‌شده در این مقاله موارد زیر را می‌توان مطرح کرد:

  • دقت بالا

  • مستقل از پراکندگی داده

  • سازگاری با نویز

  • نگهداری آسان

  • قابل پیاده سازی در سخت‌افزارهای موازی

مورد دیگر بررسی شده در این مقاله الگوریتم جست و جوی ژنتیک28است. از این الگوریتم به منظور پیدا کردن زیرمجموعه‌ای از ویژگی‌ها با دقت بالا استفاده‌شده.

الگوریتم جست و جوی ژنتیک

در نهایت الگوریتم پیشنهادی ارائه شده‌ی این مقاله ابتدا الگوریتم‌های کم کردن ویژگی و بعد از آن پیاده‌سازی الگوریتم شبکه‌های عصبی روی ویژگی‌های به‌دست‌آمده است که در مقایسه با روش‌های جی48, ناییوبیزین و پارت (PART) دقت بالاتری داشته‌است.

برای بخشی از روش‌های دیگر استفاده شده به طور خلاصه می‌توان موارد زیر را نام‌برد:

  • استفاده از سه الگوریتم ناییوبیزین, کی‌نیرست و دی‌ال (Decision List algorithm) در [13]

  • سیستم IHDPS با استفاده از درخت تصمیم, ناییوبیزین و شبکه‌های عصبی در [14]

  • الگوریتم بر پایه‌ی گراف در [15]

  • یادگیری قانون وابستگی29 به همراه الگوریتم ژنتیک در [16]

  • کلاسه بندی وابسته وزن‌دار 30 در [17]

۳. آزمایش‌ها

در این بخش ابتدا به بررسی داده‌های پایگاه‌داده‌ی خود می‌پردازیم.

۳.۱. بررسی داده‌ها

اولین و از مهم‌ترین مراحل این آزمایش بعد از شناخت مسئله را می‌توان شناخت پایگاه داده‌ی خود دانست. یکی از عوامل تاثیر گذار در نتیجه کیفیت داده‌‎هاست که بر میزان دقت و کامل بودن آن دلالت دارد. [3] پایگاه‌داده دانشگاه ایرواین دارای 76 متغیر برای 303 بیمار است که در تمام کارهای تا به حال انجام شده روی آن فقط 14 متغیر آن مورد استفاده قرارگرفته‌اند.این متغیرها عبارت‌اند از:

  1. سن

  2. جنسیت (0 برای خانم‌ها و 1 برای آقایان)

  3. نوع درد قفسه سینه

  4. فشار خون در حال استراحت (Trestbps)

  5. میران کلسترول

  6. قندخون ناشتا (0 برای کمتر از 120 و 1 برای بیشتر از 120 )

  7. نتایج الکتروکاردیوگرافی (Restecg سه مقدارnorm برای نرمال,abn برای غیر نرمال و hyp هاپرتروپی بطن چپ )

  8. بیشینه میزان ضربان قلب (Thalach)

  9. آنژین ناشی از ورزش داشته است یا خیر؟ (Exang)

  10. اس‌تی ورزش مرتبط با استراحت

  11. شیب قسمت اس‌تی (صعودی, نزولی و بدون شیب)

  12. تعداد رگ‌های رنگی در فلوروسکوپی (ca بین 0 تا 3)

  13. وضعیت قلب در تست تالیم

  14. وضعیت (0 برای سالم 1 تا 4 برای نا سالم)
    برای بخش آزمایش ما از این 14 متغیر استفاده کرده‌ایم

۳.۲. ابزار

ابزار مورد استفاده‌ی ما برای این آزمایش یکی از بسته‌های زبان برنامه‌نویسی پایتون به نام سایکیت [18] است.

۳.۳. تئوری روش‌های استفاده شده

در این بخش سعی بر این شده که روش‌های گوناگون مورد بررسی قراربگیرند و آزمایش شود که کدام‌یک از این روش‌ها بهترین مدل‌سازی را ارائه می‌دهند.

۳.۳.۱. شبکه‌های عصبی

یکی از روش‌های یادگیری تحت نظارت (supervised learning) شبکه عصبی MLP با یادگیری یک تابع به شکل زیر با گرفتن ویژگی‌های ورودی خروجی یا خروجی‌های مربوطه را پیش‌بینی می‌کند.

f \big(0\big) : R^{m} \rightarrow R^{O}

که m و o به ترتیب تعداد بعدهای ورودی و خروجی اند.
شبکه‌های عصبی می‌توانند یک تابع تخمین غیر خطی برای کلاسه‌بندی یا رگراسیون بیاموزد. تفاوت آن با رگراسیون در این است که بین لایه‌ی ورودی و لایه‌ی خروجی یک یا تعداد زیادی لایه‌ وجود داشته‌باشد که به آن لایه‌ها لایه‌های مخفی می‌گویند.
یک شبکه عصبی با یک لایه‌ی پنهان

شبکه‌های عصبی یک مجموعه از ویژگی‌ها ملقب به نورون‌ها را به عنوان ورودی می‌دهد هر نورون با یک جمع وزن‌دار مقدار ورودی از لایه قبل را تبدیل می‌کند. لایه‌ی خروجی, خروجی اخرین لایه‌ی نهان را گرفته و به خروجی تبدیل می‌کند که این خروجی ئیش‌بینی شبکه عصبی از ورودی‌هاست.
ویژگی‌های مثبت شبکه‌عصبی:

  • توانایی آموختن مدل‌های غیر خطی

  • توانیی آموختن مدل‌ها در زمان حقیقی (real time) با استفاده از partial_fit
    ویژگی‌های منفی شبکه‌عصبی:

  • وزن‌های متفاوت ورودی باعث تغییر در دقت خروجی پیش‌بینی‌شده می‌شود (به دلیل بیشینه‌های محلی)

  • باید مقدارهایی برایش از ابتدا مشخص باشند مثل تعداد نورون‌ها و لایه‌های پنهان

  • به scale ویژگی‌ها حساس است

۳.۳.۲. ماشین بردار پشتیبانی

ماشین بردار پشتیبانی (SVM) یکی از روش‌های یادگیری بانظارت است که از آن برای طبقه‌بندی و رگرسیون استفاده می‌کنند. این روش روشی جدید و با کارایی خوب است. مبنای کاری دسته‌بندی کننده‌ی SVM دسته‌بندی خطی داده‌ها است. در تقسیم خطی داده‌ها سعی می‌کنیم خطی را انتخاب کنیم که حاشیه اطمینان بیشتری داشته باشد. قبل از تقسیمِ خطی برای اینکه ماشین بتواند داده‌های با پیچیدگی بالا را دسته‌بندی کند داده‌ها را به وسیلهٔ تابعِ phi به فضای با ابعاد خیلی بالاتر می‌بریم. برای اینکه بتوانیم مسئله ابعاد خیلی بالا را با استفاده از این روش‌ها حل کنیم از قضیه دوگانی لاگرانژ برای تبدیلِ مسئلهٔ مینیمم‌سازی مورد نظر به فرم دوگانی آن که در آن به جای تابع پیچیدهٔ phi که ما را به فضایی با ابعاد بالا می‌برد، تابعِ ساده‌تری به نامِ تابع هسته که ضرب برداری تابع phi است ظاهر می‌شود استفاده می‌کنیم. از توابع هسته مختلفی از جمله هسته‌های نمایی، چندجمله‌ای و سیگموید می‌توان استفاده نمود.[19]
ویژگی‌های مثبت :

  • بهینه برای فضاهای با ابعاد زیاد

  • بهینه برای تعداد ابعاد بزرگ‌تر از تعداد نمونه‌ها

  • بهینه از نظر مصرف حافظه

  • قابلیت استفاده از تابع هسته‌های متنوع از قبل تعریف شده و تابع هسته‌های دلخواه کاربر

  • همانند شبکه‌های عصبی در بیشینه‌های محلی به مشکل برنمی‌خورد

ویژگی‌های منفی:

  • قابلیت محاسبه مستقیم تخمین احتمال را ندارد

  • نیاز به تابع هسته خوب دارد

در این آزمایش ما از linear SVC, RBF SVC , sigmoid SVC و SVR استفاده کردیم که linear SVC, RBF SVC , sigmoid SVC در بخش کلاسه‌بندی و SVR در بخش رگرسیون هستند.

کلاسه‌بندی‌های مختلف

تابع هسته‌های مختلف به صورت زیرند:
linear :
< x , \acute{x} >

polynomial:
( y < x , \acute{x} > + r )^{d}

rbf:
( - \gamma ||x- \acute{x} ||^{2} ) \gamma

sigmoid:
tanh( \gamma < x , \acute{x} > + r)

۳.۳.۳. نزدیکترین طبقه بندی ثقل

نزدیکترین طبقه بندی ثقل (Nearest Centroid Classifier) هر کلاس را با مرکز ثقل (میانه) اعضای آن کلاس بیان می‌کند.
ویژگی‌های مثبت:

  • نیاز به انتخاب موردی ندارد

  • به‌روز رسانی برچسب (از مراحل الگوریتم KMeans) را ساده‌تر می‌کند

ویژگی‌های منفی:

  • کلاس‌های غیر محدب

Nearest Centroid Classifier

۳.۳.۴. دسته‌بندی‌کننده بیز ساده

دسته‌بندی‌کننده بیز ساده گروهی از دسته‌بندی‌کننده‌های ساده بر پایه احتمالات و یکی از روش‌های یادگیری بانظارت است. به‌طور ساده روش بیز روشی برای دسته‌بندی پدیده‌ها، بر پایه احتمال وقوع یا عدم وقوع یک پدیده‌است.
فرمول بیز با استفاده از فرض استقلال ساده :

P (y| x_{1} , ... , x_{n} ) = \frac{P(y) \prod_1^n P( x_{i} |y)}{P(x_{1} , ... , x_{n})}

در این آزمایش ما از بیز ساده‌ی گاوسی استفاده کردیم که فرمول آن به صورت زیر است:
P( x_{i}|y ) = \frac{1}{ \sqrt{2 \Pi \sigma _{y} ^{2} } } (- \frac{ ( x_{i} - \mu _{y} )^{2} }{2 \sigma _{y} ^{2}} )

مقدار سیگما و میو توسط شباهت بیشنه (maximum likelihood) تخمین زده‌می‌شوند.
ویژگی‌های مثبت:

  • از نظر محاسباتی سریع

  • پیاده‌سازی آسان

  • با ابعاد بالا خوب کار می‌کند

ویژگی‌های منفی:

  • فرضیاتی دارد که اگر نقض شوند بد عمل می‌کند[20]

۳.۳.۵. درخت تصمیم و رگراسیون درخت تصمیم

درخت تصمیم از روش‌های یادگیری بانظارت است که برای کلاسه‌بندی و رگرسیون استفاده می‌شود. هدف آن تشخیص کلاس متغیر هدف با استفاده از یک‌سری قوانین استخراج شده از داده‌هاست. این قوانین به صورت اگر شرط آنگاه و در غیر این‌صورت آنگاه هستند.

ویژگی‌های مثبت:

  • ترجمه آسان

  • آماده‌سازی کمی برای داده‌ها لازم دارد

  • قادر به کار با داده‌های عددی و غیر عددی است

  • می‌تواند مسائلی با چند خروجی را حل کند

  • قابل آزمودن است

ویژگی‌های منفی:

  • ممکن‌است درخت‌های پیچیده‌ای خروجی دهند

  • سربار دارد

  • می‌توانند ناپایا باشند

۳.۴. نتایج آزمایش

تمام روش‌های توضیح داده‌شده در بخش قبل را روی 14 ویژگی منتخب با استفاده از سایکیت پایتون پیاده‌سازی کردیم کدها از گیت‌هاب قابل مشاهده‌اند.
نتایج را در دو حالت که در اولی بیمار بودن یا سالم بودن به صورت دودویی (بولین) و در دومی 0 به معنای سالم و 1تا4 بیمار در نظر گرفته‌شده‌است.

روش: score recal precission
شبکه عصبی 0.97 0.5 0.48
SVR 0.93 0.48 0.48
linearSVC 0.84 0.43 0.48
rbfSVC 0.94 0.48 0.48
sigmoidSVC 0.03 0.5 0.01
nearest centroid 0.96 0.5 0.48
gaussian naive bayes 0.89 0.46 0.48
Decision Tree 0.69 0.68 0.52
D-Tree Regression 0.64 0.65 0.52

جدول بالا و نمودار زیر برای حالت بولین در نظر گرفته‌شده‌ی بیماری قلبی است.

نتایج در حالت اول

سپس برای حالت دوم نتایج را از روی نمودار زیر میبینیم

نتایج در حالت دوم

۴. بهبود نتایج

برای بهبود نتایج از دو الگوریتم انتخاب ویژگی استفاده کردیم زیرا برای تمام آزمایش‌های انجام شده تا کنون از این 14 ویژگی استفاده کرده‌اند اگر با الگوریتم‌هایی ویژگی‌های دیگر نیز امتحان شوند بهتر است.
دو الگوریتم به کار برده به شرح زیراند:

  1. انتخاب ویژگی با آستانه‌ی واریانس که تمام ویژگی‌هایی با واریانس کم‌تر از آستانه را حذف می‌کند.

  2. انتخاب ویژگی از راه درخت که ویژگی‌های بی‌ربط را از بین ویژگی‌ها حذف می‌کند

قبل از ادامه به بررسی این دو روش می‌پردازیم:

۴.۱. واریانس

واریانس نوعی سنجش پراکندگی است در واقع نشان‌می‌دهد که داده‌ها چگونه حول میانگین پراکنده‌شده‌اند. هرچه واریانس کم‌تر داده‌ها پراکندگی کمتری نسبت به میانگین دارند و ما با در نظر گرفتن آستانه‌ای برای واریانس و حذف ویژگی‌هایی با واریانس کم‌تر از آن آستانه ویژگی‌های مفیدتری برای الگوریتم خود انتخاب کرده‌ایم.
واریانس از فرمول زیر به‌دست‌می‌آید:

\sigma^2 = \frac{\displaystyle\sum_{i=1}^{n}(x_i - \mu)^2} {n}

۴.۲. درخت

در این روش به روش‌های انتخاب ویژگی در هر مرحله‌ی ساخت یک درخت اتکا می‌شود برای مثال ویژگی‌های که آنتروپی آن‌ها مناسب تر باشند بهتر مجموعه را به گروه‌های مختلف تقسیم می‌کنند و درخت بهتری حاصل می‌شود اینگونه با انتخاب این ویژگی‌ها به عنوان ویژگی‌های اصلی خود سعی در بهبود نتایج شده‌است.
برای فهم بهتر تصویر زیر را مشاهده‌کنید که به ترتیب ویژگی‌های 1,2و0 تاثیر بهتری برروی درخت داشته‌اند.

مثالب برای میزان تاثیر ویژگی‌ها برروی ساخت درخت

نتایج به دست آمده در دو روش و روش بدون انتخاب ویژگی با 54 ویژگی و 14 ویژگی منتخب وقالات انجام‌شده در جدول زیر قرارداده‌شده‌اند.

روش: no filter 54 no filter 14 VarianceThreshold Tree-based
nuralnet 0.96 0.97 0.009 0.17
SVR 0.41 0.48 0.004 0.0001
linearSVC 0.5 0.43 0.66 0.94
rbfSVC 0.41 0.48 0.009 0.33
sigmoid_svc 0.56 0.5 0.027 0.16
NearestCentroid 0.58 0.5 0.72 0.36
Gaussian naive bayes 0.59 0.46 0.26 0.25
Decision Tree 0.62 0.68 0.45 0.44
D-Tree Regression 0.62 0.65 0.86 0.45

همان‌طور که قابل مشاده‌است الگوریتم‌های انتخاب ویژگی اعمال‌شده در برخی الگوریتم‌ها موجب بهبود و در برخی دیگر موجب بدتر شدن نتیجه شده‌است. چیزی که قابل مشاده‌است در اس‌وی‌سی خطی, نزدیکترین طبقه بندی ثقل و رگرزاسون درخت تصمیم انتخاب ویژگی دقت را افزایش داده‌است.
روش دیگری به نام خط لوله یا pipeline نیز در این مرحله به کار برده‌شد. این روش در واقع الگوریتمی از یادگیری ماشین نیست بلکه برای زمانی است که لازم است دنباله‌ای از تبدیل‌ها یا انتخاب ویژگی‌ها اعمال شود که سایکیت این کار را میسر کرده‌است. هدف از استفاده‌ی خط لوله، جمع‌آوری چندین مرحله است که می‌توانند با هم تنظیم متغیرهای مختلف را به یکدیگر متصل کنند. با اعمال خط لوله دقت به دست‌آمد از آن 0.97 است که دقت خوبی نسبت به جدول بالاست.

۵. کارهای آینده

برای کارهای آینده می‌توان الگوریتم‌های مربوط به گرفتن قسمت آموزشی و تستی همانند تن فولد (ten fold) را نیز امتحان کرد. همچنین می‌توان ترکیبی از الگوریتم‌های بالا را امتحان و نتایج را مقایسه کرد تا بلکه نتایج بهتری به دست آمد. ایده‌ی دیگر استفاده از ویژگی‌های تجربی بر اسا علم پزشکی علاوه بر الگوریتم‌های انتخاب ویژگی و دادن امتیازی بر اساس این دو روش (روش انتخاب ویژگی بر اساس علم پزشکی و الگوریتم‌های یادگیری ماشین مربوط به انتخاب ویژگی) و انتخاب بهترین‌ها بین ویژگی‌هاست.

۶. مراجع

[1] blog.shafadoc.ir/tag
[2] parsine.com
[3] en.wikipedia.org/wiki/Datamining
[4]Heart Disease Prediction Using Machinelearning and Data Mining TechniqueJaymin Patel, Prof.TejalUpadhyay, Dr. Samir Patel
[5]A Knowledge driven Approach for Efficient Analysis of Heart Disease Dataset G. N. Beena BethelAssociate Professor,CSE Department,GRIET, Hyderabad T. V. Rajinikanth, PhDProfessor,CSE Department,SNIST, Hyderabad. S. Viswanadha Raju, PhDProfessor,CSE Department,JNTUH, Jagityal, Karimnagar.
[6]Zhao, H., Guo, S., Chen, J., Shi, Q., Wang, J., Zheng,C., et al. (2010). Characteristic pattern study of coronaryheart disease with blood stasis syndrome based ondecision tree. In 4th international conference onbioinformatics and biomedical engineering (iCBBE)(pp. 1–3). Chengdu, China: IEEE
[7]Abraham, R., Simha, J. B., & Iyengar, S. (2007).Medical datamining with a new algorithm for featureselection and Naı¨ve Bayesian classifier. In 10thinternational conference on information technology,(ICIT), 2007 Orissa IEEE computer society (pp. 44–49).
[8]Sethi, P., & Jain, M. (2010). A comparative featureselection approach for the prediction of healthcarecoverage. Information Systems, Technology andManagement, 392–403.
[9]Polat, K., & Guenes, S. (2009). A new feature selectionmethod on classification of medical datasets: Kernel Fscore feature selection. Expert Systems withApplications, 36, 10367–10373
[10]Top 10 algorithms in data mining Xindong Wu · Vipin Kumar · J. Ross Quinlan · Joydeep Ghosh · Qiang Yang · Hiroshi Motoda · Geoffrey J. McLachlan · Angus Ng · Bing Liu · Philip S. Yu · Zhi-Hua Zhou · Michael Steinbach · David J. Hand · Dan Steinberg
[11]A Survey of Data Mining Techniques on Medical Data for Finding Locally Frequent Diseases Mohammed Abdul Khaleel*Sateesh Kumar Pradham G.N. Dash Research Scholar P.G.Department of Computer Science P.G.Department of Physics Sambalpur University, India Utkal University, India Sambalpur University, India
[12]Classification of Heart Disease using Artificial Neural Networkand Feature Subset Selection M. Akhil Jabbar, B.L Deekshatulu & Priti Chandra
[13]Asha Rajkumar, G.Sophia Reena, Diagnosis Of Heart Disease Using Datamining Algorithm, Global Journal of Computer Science andTechnology 38 Vol. 10 Issue 10 Ver. 1.0 September 2010.
[14]Sellappan Palaniappan Rafiah Awang, Intelligent Heart Disease Prediction System Using Data Mining Techniques, IJCSNSInternational Journal of Computer Science and Network Security, VOL.8 No.8, August 2008
[15]MA. Jabbar, B.L Deekshatulu, Priti Chandra, “Graphbased approach for heart disease prediction”, LNEEpp 361-369 Springer Verlag 2012
[16]MA.Jabbar, B.L Deekshatulu, Priti Chandra, “Anevolutionary algorithm for heart disease prediction”,CCIS pp 378-389springer Verlag(2012)
[17]Intelligent and Effective Heart Disease Prediction System using Weighted Associative Classifiers Jyoti Soni, Uzma Ansari, Dipesh SharmaComputer ScienceRaipur Institute of Technology, RaipurC.G., IndiaSunita SoniComputer ApplicationsBhilai Institute of technology, BhilaiC.G., India
[18]http://scikit-learn.org/stable/
[19]https://fa.wikipedia.org/wiki/%D9%85%D8%A7%D8%B4%DB%8C%D9%86
%D8%A8%D8%B1%D8%AF%D8%A7%D8%B1_%D9%BE%D8%B4%D8%AA%DB%8C%D8%A8%D8%A7%D9%86%DB%8C
[20]https://github.com/ctufts/Cheat_Sheets/wiki/Classification-Model-Pros-and-Cons

۷. پیوندهای مفید


  1. می‌تواند نیمی از هشت هزار بیماری ژنتیکی را با تحلیل الگوهای چهره و مقایسه با عکس‌های بیماران در پایگاه اطلاعاتی خود تشخیص بدهد

  2. Autism( RightEye GeoPref Autism آزمایشی به نام )

  3. Alzaymer (Winterlight ابزار شرکت )

  4. Data mining

  5. C4.5

  6. k-means clustering

  7. Support vector machine

  8. Apriori algorithm

  9. EM algorithm

  10. Page rank

  11. AdaBoost

  12. k-nearest neighbors algorithm

  13. Naive Bayes classifier

  14. CART:Classification and Regression Trees

  15. Decision tree

  16. J48

  17. Logistic Model Tree

  18. Random Forest

  19. ReducedErrorPruning

  20. Computerized Feature Selection

  21. Medical Feature Selection

  22. Sequential minimal optimization

  23. backward elimination

  24. Wrapper based feature selection using Chi-square

  25. Gain ratio

  26. Kernel F-score

  27. PCA

  28. Genetic Search

  29. association rule mining

  30. Weighted Associative Classifier(WAC)

سيد محمد پورباقری

سلام
خسته نباشید
مقدمه‌ی شما طولانی است. در واقع تقریباً نیمی از مطالب شما را مقدمه تشکیل می‌دهد. بهتر است آن را کوتاه‌تر کنید.
در بخش کارهای پیشین، توضیحات شما مختصر است. لازم است حداقل یکی از روش‌ها که روش اصلی مورد استفاد‌ه‌ی شما در انجام پروژه است را با توضیحات بیشتری شرح دهید.
از فرمول‌ها عکس گرفته‌اید. در فاز بعد حتماً اصلاح کرده و خودتان آن‌ها را بنویسید.
مراجع ۱ تا ۳ را اصلاح کنید. به‌جای آن‌که به‌صورت لینک قرار دهید، آدرس آن را بنویسید.
عنوان شماره ۱ که با نام عنوان آورده شده را حذف کنید. علاوه بر این حتماً یک بار نوشته‌تان را مرور کنید. علایم نگارشی را اصلاح کنید و بعضی از غلط‌های املایی را نیز تصحیح کنید.
در این فاز، چون فاز اول بود کمی در امتیازدهی سخت‌گیری کمتری انجام شده‌است. لطفاً در فازهای بعدی دقت بیشتری در انجام پروژه داشته‌باشید.
موفق باشید

رد شده

خسته نباشید.
تمام بخش ها خوب ارزیابی می شوند.

تایید شده

با اینکه بخش گزارش نتایج نسبتا طولانی آورده شده است اما تمامی الگوریتم ها به خوبی توضیح داده شده است و استفاده از چندین الگوریتم و گزارش و مقایسه دقت آزمایش به وسیله هر کدام از ویژگی های مثبت کار است.
همچنین در بخش کار های مرتبط به خوبی چندین مطالعه بررسی و به روش های مختلف اشاره شده است.

سيد محمد پورباقری

سلام
خسته نباشید
از اینکه به موارد اشاره‌شده در ارزیابی فاز قبل توجه کردید از شما سپاسگزارم.
اینکه آزمایش‌های خود را با روش‌های مختلفی انجام دادید و برای گزارش و مقایسه‌ی نتایج از نمودار استفاده کردید ارزشمند است.
در مورد سه روش ارزیابی که با عناوین precision، recall و score آورده‌اید، منظور از کلمه‌ی score مبهم است. در کد پیاده‌سازی شما متوجه شدم که منظورتان accuracy است. همچنین به نظر می‌رسد نمودارهای precision و recall را به جای هم رسم کرده‌اید. لطفاً خطوط ۱۲۸ و ۱۳۰ کدتان را یک بررسی مجدد بفرمایید.
همچنین جمله‌ای که در مورد بهتر عمل کردن الگوریتم‌ها در هر یک از دو حالت نوشته‌اید کلی است و مشخص نیست که با توجه به کدام معیار چنین قضاوتی داشته‌اید.
علاوه بر این نگارش بعضی از کلمات را هم می‌توانید اصلاح کنید. مثلاً معادل guassian را در فارسی گاوسی می‌نویسند (که شما گاسین نوشته‌اید) و مواردی از این قبیل.
موفق باشید

سيد محمد پورباقری

سلام و خسته نباشید
در این فاز نسبت به فاز قبل مقایسه‌ی کمتری مخصوصاً به صورت نموداری روی معیارهای مختلف سنجش انجام داده‌اید.
همچنین اینکه روش پیشنهادی اول شما در اکثر موارد عملکرد بدتری داشته را خوب بود که توجیه می‌کردید که علت چیست.
علاوه بر این در مورد روش pipeline که در انتها ذکر کرده‌اید بهتر بود بیشتر توضیح می‌دادید.
موفق باشید

تایید شده

مسئله به خوبی شرح داده شده. الگوریتم‌ها و کارهای مرتبط به خوبی توضیح داده شده و نقاط قوت و ضعفشان بیان شده.ارجاع به مقالات خوب بود.نتایج آزمایشات به شیوه‌ی مناسبی بیان شده است.

تایید شده

با سلام
کار شما واقعا خوب و کامل بود و تقریبا همه جنبه های ممکن را پوشش داده بودید
در بخش بهبود نتایج می توانستید کمی بهتر توضیح دهید . بهتر بود برای نمودار استفاده شده برچسب محور استفاده می کردید تا قابل فهم تر شود.
در بخش مراجع تنها مقالات باید ذکر شوند . لینک هارا باید به بخش پیوند های مفید انتقال می دادید.
خسته نباشید!

تایید شده

با سلام
موارد به خوبی شرح داده شده است و استفاده از نمودار ها، جدول و ذکر مراجع به صورت دقیق از مزیت های پروژه محسوب می شود. در مورد پیاده سازی کمی بیشتر توضیح داده می شد بهتر بود.

تایید شده

با عرض سلام و خسته نباشید. در کل بسیار عالی عمل کرده اید.اما تنها نکته این است که در فاز آخر به اندازه فازهای قبل کار نکردید و بهتر بود پریسیزن ریکال هم ذکر میکردید اما باز هم این موارد باعث نقص کار شما نمی شود. موفق باشید

تایید شده

سلام،
خیلی خوب بود که همه ی الکوریتم ها رو توضیح دادید و آزمایش کردید و با نمودار مقایسه کردید. همچنین قسمت بهبود نتایج نیز به خوبی شرح داده شده و عوامل مؤثر در آن را به خوبی مطرح کردید.