کمی برنامهنویسی پایتون، علاقهمند به تحلیل داده https://www.linkedin.com/in/amirabdollahi
پیشبینی دیابت با استفاده از درخت تصمیم «نرمافزار رپیدماینر»
خلاصه
دیابت نوع ۲ یک بیماری شایع در جهان میباشد. امروزه تکنیکهای تحلیل داده و یادگیری ماشین در زمینه تشخیص پزشکی در حال افزایش است. در این مطلب مدلی برای پیشبینی و تشخیص بیماری دیابت نوع ۲ پیشنهاد شدهاست. در مدل پیشنهادی از درخت تصمیم به عنوان یک طبقهبند برای طبقهبندی دادهها استفاده شدهاست. به منظور دستیابی به نتیجه تجربی، ما از مجموعهداده pima از مخزن یادگیری ماشین UCI استفاده شده است. نتایج نشان میدهد درخت تصمیم مبتنی بر معیار صحت «accuracy» به همراه هرس کردن درخت تصمیم در مقایسه با دیگر روشهای بررسی شده دقت بالاتری رسیده است. نتایج حاصل از سیستم پیشنهادی برای تکنیک مورد استفاده دقت ۸۱.۴۲٪ به دست آمده است.
مقدمه
دیابت قندی یک سندروم است که با اختلال متابولیک و بیماریهای متابولیک شناخته میشود. این اختلال از افزایش غیرطبیعی غلظت قند خون ناشی از کمبود انسولین، یا حساس بودن بافتها به انسولین کم میباشد.دیابت منجر به عوارض جدی یا حتی مرگ نابهنگام میشود. با این حال، برای تشخیص دیابت، چندین آزمایش زمانبر و تجزیه و تحلیل عوامل بحرانی انجام میشود. امروزه الگوریتمهای یادگیری ماشین برای طبقهبندی و تشخیص بیماریها به منظور رفع مشکلات و کاهش هزینههای مورد نیاز مورد استفاده قرار میگیرند. علاوهبر این یادگیری ماشین به تصمیمات معنیدار و دقیقی منجر میشود.مجموعه دادههای پزشکی اغلب حاوی اطلاعات نامناسب «نویز» هستند. نویزها معمولا به خاطر خطای انسانی، مشکلات دستگاه، شرایط محیطی حادث میشوند. نویز بر نتایج تصمیمگیری الگوریتم مورد استفاده تأثیر میگذارد.
دانش اولیه
در این بخش به بررسی دادهکاوی، ابزارها و روشهای مورد بررسی در این مقاله میپردازیم.
دادهکاوی
ما در جهانی زندگی میکنیم که روزانه مقدار زیادی اطلاعات جمعآوری میشود. روشهای سنتی تبدیل دادهها به دانش، بر تجزیه و تحلیل دادهها به صورت دستی متکی است. با افزایش سریع حجم دادهها، این فرم تجزیه و تحلیل اطلاعات آهسته، گران و subjective است. روش سنتی در بسیاری از زمینهها کاملا غیرعملی است و نمیتواند نیاز به تجزیه و تحلیل دادهها را برآورده کند.دادهکاوی، همچنین به عنوان کشف دانش از داده «KDD» شناخته میشود، میتواند این نیاز را با ارائه ابزار برای کشف دانش از دادهها تامین کند. دادهکاوی فرآیند کشف الگوهای جالب و دانش از مقادیر زیادی داده است. منابع دادهها میتوانند شامل پایگاه دادهها، انبارههای داده، وب، سایر مخازن اطلاعات یا دادههایی باشند که به صورت پویا به سیستم منتقل میشوند.در دهههای گذشته، دادهکاوی در زمینههای مختلف مانند بازاریابی، مالی «به ویژه سرمایهگذاری»، تشخیص تقلب، تولید، مخابرات و بسیاری زمینههای علمی، از جمله تجزیه و تحلیل دادههای پزشکی بهکار گرفته شده است. همانطور که حجم اطلاعات پزشکی بهطور چشمگیری افزایش مییابد، فشار رو به رشد برای تجزیه و تحلیل دادههای کارآمد برای استخراج اطلاعات مفید و کاربردی از مقادیر بسیار زیاد دادهها وجود دارد. چنین اطلاعاتی ممکن است نقش مهمی در تصمیمگیریهای پزشکی آینده ایفا کند.
ابزارهای دادهکاوی
برای اجرای مدل پیشنهادی، لازم است از برخی ابزارهای داده کاوی استفاده شود. یک ابزار دادهکاوی کارآمد میتواند به ما در تبدیل دادههای عظیم به اطلاعات مفید کمک کند. در چند سال گذشته، ابزارهای دادهکاوی منبع باز و نرمافزارهای مختلفی برای استفاده وجود دارد مانند ردپیدماینر، محیط برای تجزیه و تحلیل دانش «WEKA»، «KNIME»، «Orange». همچنین کتابخانههای قوی رایگان زیادی برای زبانهای پایتون و R توسعه داده شدهاست.از جمله این ابزارهای دادهکاوی، رپیدماینر یکی از ابزارهای محبوب و کاملا کاربردی است. در این بررسی از رپیدماینر به عنوان ابزار استخراج داده استفاده شدهاست. رپیدماینر یکی از ابزارهای مورد استفاده برای کاوش و کشف دانش از جریان دادهها میباشد. این نرمافزار قابلیت تجزیه و تحلیل حجم عظیمی از دادهها را با استفاده از اتصال به Hadoop وSpark دارد. این نرمافزار از تنوع وظایف استاندارد برای دادهکاوی از جمله پیشپردازش دادهها، خوشهبندی، طبقهبندی، رگرسیون، تجسم و انتخاب ویژگی پشتیبانی میکند.
متدهای دادهکاوی
پیشبینی میشود که دادهکاوی یکی از پیشرفتهای انقلابی دهههای آینده باشد. مجله MIT Technology Review، آن را به عنوان یکی از ۱۰ فناوری در حال ظهور انتخاب کرده است که جهان را تغییر خواهد داد«+». محققان به شدت در حال توسعه روشهای دادهکاوی جدید هستند. متدولوژیهای دادهکاوی باید مواردی مانند عدم اطمینان داده، نویز و ناتمام بودن را در نظر بگیرند. برخی از روشهای دادهکاوی، کشف میکنند که چگونه میتوان از معیارهای تعیین شده توسط کاربر برای ارزیابی جالب بودن الگوهای کشف شده و همچنین روند کشف استفاده کرد. در این بخش، یک روش دادهکاوی عمومی که در مدل پیشنهادی مورد استفاده قرار میگیرد مورد بحث قرار میگیرد.
الگوریتم درخت تصمیم
در چند سال گذشته الگوریتمهای زیادی برای دستهبندی دادهها توسعه پیدا کردهاند. درخت تصمیمگیری یک الگوریتم طبقهبندی مهم در دادهکاوی است. مزیت اصلی الگوریتمهای درخت تصمیمگیری این است که ساخت آنها آسان هستند و در نتیجه بهراحتی قابل تفسیر هستند. معمولا در زمینههای مختلف استفاده میشود. محققان انواع الگوریتمهای درخت تصمیمگیری را برای یک دوره زمانی با افزایش عملکرد و توانایی بکاربردن انواع مختلف دادهها توسعه دادهاند. الگوریتمهای محبوب درخت تصمیمگیری از جمله ID3، CART، C4.5، C5.0، J48 و غیره. C4.5 توسعه یافته است.
مرور روندکلی انجام کار
منبع داده
برای انجام تحقیق، ما از مجموعه دادههای دیابت Pima استفاده کردیم که از مخزن UCI به صورت عمومی قابل دسترس است. مجموعه داده شامل زنانی است که حداقل ۲۱ ساله از میراث پیمایی (pima) در اطراف فینیکس، آریزونا زندگی میکنند«+». در اینجا ۷۶۸ پرونده در مجموعه داده وجود دارد، از جمله ۲۶۸ مورد در کلاس "مثبت برای دیابت آزمایش شده" و ۵۰۰ مورد برای "آزمایش منفی برای دیابت" که ۳۷۶ پرونده حاوی مقادیر گم شده است. هدف از این تحقیق پیشبینی اینکه آیا فرد با استفاده از هشت اندازه گیری فیزیولوژیکی و نتایج آزمایش پزشکی داده شده در مجموعه داده، دیابت دارد یا خیر. این یک مساله دو کلاسه با ارزش کلاس «۱» که به عنوان "مثبت برای دیابت آزمایش شده" تفسیر شده است در حالی که ارزش کلاس «۰» به عنوان "منفی برای دیابت آزمایش شده" انتخاب شده است. اطلاعات ویژگی موجود در مجموعه دادهها در جدول زیر آورده شده است.
مدل پیشنهاد شده
به منظور پیشبینی، یک مدل پیشبینی تعریف شد. اصل کار مدل پیشنهاد شده در شکل زیر نشان داده شده است. این شامل مراحل زیر است:
۱. آمادهسازی دادهها
- تعیین نوع دادهها و مشخص نمودن متغیر برچسب «Label»
آمادهسازی دادهها در مورد ساخت یک مجموعه داده از یک یا چند منبع داده است که برای اکتشاف و مدلسازی استفاده میشود. این یک تمرین خوب برای شروع یک مجموعه داده اولیه است تا با دادهها آشنا شوید، ابتدا بینشهای دادهها را کشف کنید و درک خوبی از مسائل مربوط به کیفیت دادههای احتمالی داشته باشید. آمادهسازی دادهها اغلب یک فرایند زمانگیر است و به شدت مستعد اشتباهات است. در پروژههای علوم دادهای که دادهها با تعداد زیادی از مقادیر نامعتبر، غریب و از دسترفته جمعآوری شده است، تجزیه و تحلیل دادههایی که به دقت مورد بررسی قرار نگرفتهاند، میتواند نتایج بسیار گمراه کنندهای را ایجاد کند. در نتیجه، موفقیت پروژههای علوم داده به شدت به کیفیت دادههای آماده شده بستگی دارد.
۲. پیشپردازش دادهها
- یافتن دادههای گمشده و مشکل دار، حذف دادههای پرت، جایگذاری دادههای مشکل دار با مقدار میانگین، نرمالسازی دادهها
کیفیت دادهها کلید کل مدل پیشبینی است زیرا میتواند بر نتایج پیشبینی شده از تجزیه و تحلیل تاثیر بگذارد. از این رو پیشپردازش اطلاعات باید قبل از تجزیه و تحلیل دادهها انجام شود. مجموعه pima دارای تعدادی از مقادیر گم شده و مقادیر غیرممکن است، در این مجموعه داده مقادیر از دست رفته با صفر جایگزین شده است. در این مطالعه، پیش پردازش دادهها با جایگزینی مقادیر گم شده با میانگین انجام میشود.
۳. دستهبندی
- ساخت درخت تصمیم با استفاده از دادههای نرمال شده
درخت تصمیمگیری مدلهای طبقهبندی یا رگرسیون را به شکل یک ساختار درختی میسازد. این مدل یک مجموعه داده را به زیر مجموعههای کوچکتر و کوچکتر تجزیه میکند درحالیکه در همان زمان یک درخت تصمیمی مرتبط با آن به طور مداوم توسعه مییابد. نتیجه نهایی یک درخت با گرههای تصمیمگیری و گرههای برگ است. یک گره تصمیم دارای دو یا چند شاخه است. گره برگ یک طبقهبندی یا تصمیم را نشان میدهد. درختان تصمیم میتوانند اطلاعات به دو صورت دستهبندی و عددی مدیریت کنند.۴. ارزیابی عملکرد
- ارزیابی عملکرد با استفاده از برخی از معیارهای ارزیابی طبقهبندی
ارزیابی مدل بخشی جداییناپذیر از روند توسعه مدل است. این کمک میکند تا بهترین مدل را که اطلاعات ما را نشان میدهد پیدا کنیم و اینکه چگونه مدل انتخاب شده در آینده کار خواهد کرد. ارزیابی عملکرد مدل با دادههای مورد استفاده برای آموزش در علم داده قابل قبول نیست، زیرا به راحتی میتواند مدلهای over-optimistic و overfitted را تولید کند. دو روش برای ارزیابی مدلها در علوم داده، Hold-Out و Cross-Validation وجود دارد. برای جلوگیری از overfitting، در هر دو روش از مجموعه آزمون «که توسط مدل دیده نشدهاست» برای ارزیابی عملکرد مدل استفاده میشود.
- اعتبار سنجی متقابل
هنگامی که فقط مقدار محدودی از دادهها در دسترس است، برای دستیابی به برآورد بیقاعده از عملکرد مدل، از اعتبارسنجی k-fold استفاده میشود. در اعتبارسنجی متقابل k-fold، دادهها به زیر مجموعههای k برابر با اندازه مساوی تقسیم میشوند. مدل k بار به کار گرفته میشود هربار یکی از زیر مجموعههای آموزش برداشته میشود و از مجموعه آنها برای تست و ارزیابی استفاده میشود. اگر k برابر با اندازه نمونه باشد، این "leave-one-out" است.ارزیابی مدل را می توان به دو بخش تقسیم کرد:
- ارزیابی طبقهبندی Classification Evaluation
- ارزیابی رگرسیون Regression Evaluation
در این بخش ارزیابی طبقهبندی بررسی شده است.
۱. ماتریس درهمریختگی
ماتریس درهمریختگی تعداد پیشبینیهای صحیح و نادرست ساخته شده توسط مدل طبقهبندی را در مقایسه با نتایج واقعی «ارزش هدف» در دادهها نشان میدهد. ماتریس NxN است، جایی که N تعداد مقادیر هدف «کلاسها» است. عملکرد این مدلها معمولا با استفاده از دادهها در ماتریس ارزیابی میشود. جدول زیر یک ماتریس درهمریختگی ۲×۲ را برای دو کلاس نشان میدهد «مثبت و منفی».
دقت «Accuracy»: نسبت تعداد کل پیشبینیهایی است که توسط دستهبند به درستی برچسب خورده است.
ارزش پیشبینی کننده مثبت «Positive Predictive Value»، حساسیت «Sensitivity» یا «Recall»: نسبت موارد مثبت که به درستی شناسایی شدند.
ارزش پیشبینی کننده منفی Negative Predictive Value : نسبت موارد منفی که به درستی شناسایی شدند.
وضوح Specificity: نسبت موارد منفی واقعی که به درستی شناسایی می شوند.
دقت «Precision»: نسبت رکوردهایی که مثبت برچسبگذاری میشوند و واقعا کلاس آنها مثبت است.
۲. مدل ROC
نمودار ROC شبیه نمودارهای gain یا lift است که آنها ابزار مقایسهای بین مدلهای طبقهبندی را ارائه میدهند. نمودار ROC نشان میدهد که مقدار وضوح «false positive» در محور X، احتمال هدف برابر «۱»، زمانی که مقدار واقعی آن «۰»، در برابر حساسیت «true positive» در محور Y، احتمال هدف برابر «۱»، زمانی که مقدار واقعی درست «۱» است. به طور مطلوب، منحنی به سرعت به سمت بالا صعود میکند به این معنی که مدل به درستی موارد را پیشبینی میکند. خط قرمز مورب برای یک مدل تصادفی است.
۳. سطح زیر منحنی «AUC»
سطح زیر منحنی ROC اغلب به عنوان اندازهگیری کیفیت مدلهای طبقهبندی استفاده میشود. طبقهبندی تصادفی دارای یک منطقه تحت منحنی ۰.۵ است، در حالی که AUC برای یک طبقهبندی کامل برابر یک است. در عمل، اکثر مدلهای طبقهبندی دارای AUC بین ۰.۵ و ۱ می باشند.
برای مثال یک ناحیه تحت منحنی ROC از ۰.۸ بدان معنی است که یک مورد تصادفی انتخاب شده از گروه با هدف برابر با ۱ دارای نمره بزرگتر از آن برای یک مورد تصادفی انتخاب شده از گروه با هدف برابر ۰ در ۸۰٪ از زمان است.
مراحل انجام کار
در این بخش مراحل انجام کار در نرمافزار رپیدماینر تشریح میشود.برای پیادهسازی از نرمافزار رپیدماینر استفاده شدهاست. محیط رپیدماینر به سه بخش تقسیم شده است. در سمت چپ میتوان مخازن و مجموعه دادهها را به برنامه اضافه کرد، همچنین از طریق قسمت اپراتور ابزارهای لازم برای دادهکاوی در دستهبندیهای مشخص در اختیار قرار گرفته است. در مرکز برنامه محیطی برای قرار دادن اپراتورهای مورد نیاز میباشد. همچنین نتایج تحلیلها را نیز میتوان در این بخش مشاهد کرد. در سمت راست میتوان تنظیمات مورد نیاز برای هر اپراتور را تغییر داد.
آمادهسازی دادهها
مجموعه دادهی pima از طریق اپراتور read csv خوانده میشود. در بخش مربوط به متادیتاها مشخصههای مربوط به هر ویژگی تعیین میشود. ستون با نام «کلاس» به صورت bionominal و از نوع برچسب معرفی میشود. این کار باعث میشود دادههای ما دارای برچسب شوند.
پیشپردازش دادهها
اولین اقدام در کار با مجموعه دادهها تعیین وضعیت مقادیر از دست رفته میباشد. با توجه به اینکه در این مجموعه داده، مقادیر از دسترفته با صفر مقداردهی شده است آن را در مجموعه داده مشخص میکنیم و مقادیر را با علامت سوال «؟» جایگزین میکنیم. این کار باعث میشود که بتوان عملیاتهای بعدی برای حذف یا جایگذاری این مقادیر را انجام داد.پس از یافتن مقادیر از دست رفته و جایگذاری آنها با علامت سوال بر اساس مجموعهای از شرطهای منطقی دادههایی که شرایط ما را نقض میکنند را حذف میکنیم. اجرای فیلتر باعث حذف ۹۷ مورد از مجموعه دادههای انتخابی میشود.شرایط زیر برای فیلتر کردن اطلاعات استفاده شده است:
- تعداد بارداریها کمتر یا مساوی ۱۳ باشد.
- گلوکز بیشتر از ۳۰ باشد.
- فشار خون بزرگتر از ۲۶ و کوچکتر از ۱۰۵ باشد.
- میزان انسولین کمتر از ۳۰۰ باشد.
- شاخص توده بدنی بزرگتر از ۱۰ و کوچکتر از ۵۰ باشد.
- بررسی سابقه در خانواده کمتر یا مساوی ۱.۲ باشد.
- سن شخص کمتر یا مساوی ۶۵ باشد
- تذکر: در اینجا از تحلیلهای آماری برای این فیلتر کردن اطلاعات استفاده نشده است.
در مرحله بعد تعداد مقادیر از دسترفته برای هر رکورد مشخص میشود. پس از مشخص شدن تعداد آن برای هر رکورد، آنهایی که ۲ و بیشتر از ۲ مشخصهی آنها مقداری نداشته باشد حذف میشود. با این کار ۲۳۳ رکورد از مجموعهی انتخابی حذف میشود و ۴۳۸ رکورد باقی میماند. در ادامه رکوردهایی که تعداد بارداری آنها نامشخص است نیز حذف میشود. مقادیر نامشخص در دادههای باقیمانده را با مقدار میانگین جایگذاری میکنیم. پس از جایگذاری مقادیر نامشخص برای حذف تاثیر وزن ویژگیهای عددی آنها را در بازهی ۰ تا ۱ نرمالسازی میکنیم. با استفاده از فاصلهی اقلیدسی دادههای پرت شناسایی میشوند. تعداد همسایگی برابر ۱۵ و تعداد دادههای پرت ۱۰ در نظر گرفته شده است. بدین ترتیب ۱۰ رکورد بهعنوان دادهی پرت شناسایی و حذف میشوند.در پایان ۳۸۰ داده برای بررسی انتخاب میشوند.
- تذکر: پیشپردازش درست دادهها میتواند نتایج آزمایش را بهبود بخشد. یکی از ایراداتی که در پیشپردازش دادهها در این مرحله قابل مشاهده است عدم استفاده از سنجههای آماری برای فیلترکردن اطلاعات میباشد. همچنین ایراد دوم حذف حجم زیادی از دادهها میباشد، بهتر بود در این بخش فیلتر کردن اطلاعات محدود شود و مقادیر ازدست رفته با مقدار میانگین یا مقدار مناسب دیگری پر شود.
دستهبندی
برای بررسی دستهبند ۲ راه مورد بررسی قرار گرفته است:
- استفاده از تقسیم دادهها به مجموعههای ۷۰٪ برای یادگیری و ۳۰٪ برای تست، نمونهبرداری برابر از ۲ کلاس موجود و انتخاب درخت تصمیم با معیار accuracy برای ۱۰
- استفاده از Cross Validation-accuracy با نمونهبرداری برابر از ۲ کلاس موجود، تقسیمبندی دادهها به ۲۰ قسمت مساوی و انتخاب درخت تصمیم با معیار accuracy برای مدل
در روش اول دادهها به دو بخش ۷۰٪ و ۳۰٪ تقسیم میشوند. ۷۰٪ دادهها برای یادگیری درخت تصمیم و ۳۰٪ از آنها برای تست درخت تصمیم استفاده میشود. برای اینکه درخت تصمیم از یک کلاس دادههای بیشتری مشاهده نکند و یادگیری درخت تصمیم نسبت به ۲ کلاس برابر باشد از هر کلاس به تعداد برابر نمونهبرداری میشود. در درخت تصمیم از معیار accuracy برای ایجاد درخت استفاده شده است. حداکثر عمق درخت برابر ۲۰ انتخاب شده است. دادهها روی مدل ایجاد شده اعمال میشوند.در روش دوم دادهها برای درخت تصمیم به صورت برابر نمونهبرداری میشوند. دادهها به ۲۰ قسمت مساوی تقسیم میشود ۱۹ قسمت از این دادهها برای یادگیری مدل و یک قسمت باقیماندهی آن برای تست دادهها استفاده میشود. این عمل برای هر ۲۰ قسمت انجام شده و در پایان از دقتهای بدست آمده میانگینگیری میشود. درخت انتخاب شده برای روش دوم همان درخت تصمیم روش اول با همان تنظیمات میباشد.
- تذکر: یکی از ایرادات مدل طراحی شده استفاده از نمونهبرداری مساوی است. با توجه به مساوی نبودن میزان نمونهها در دو گروه «مثبت برای دیابت» و «منفی برای دیابت» نمیتوان از نمونهبردای یکسان استفاده کرد.
ارزیابی عملکرد
برای ارزیابی مدلها، معیارهای زیر بررسی شده است:
- معیار accuracy
- معیار percision
- معیار recall
- معیار AUC
نتایج آزمایش
ابتدا با پیشپردازش مقادیر دادهای، دادههایی با تعداد داده نامشخص بیشتر یا مساوی ۲ حذف شدهاست. سپس مقادیر نامشخص با مقدار میانگین جایگذاری و نرمالسازی شده است. در پایان دادههای پرت حذف شدهاست. تعداد ۳۸۰ رکورد بهعنوان رکورد مناسب برای بررسی انتخاب شدهاست. این مقادیر با درخت تصمیم به صورت ۷۰٪ یادگیری و ۳۰٪ تست و همچنین cross validation بررسی شدهاست. برای بررسی و مقایسهی نتایج برای درخت تصمیم معیارهای مختلفی انتخاب و بررسی شد. این معیارها عبارتند از:
- معیار accuracy
- معیار gain ratio
- معیار information gain
- معیار gini index
در پایان ۸ مدل بررسی شد که دقت مدل درخت تصمیم در روش اول برابر با ۸۱.۴۲٪ میباشد. همچنین precision برابر با ۵۱.۶۱٪ ، recall برابر با ۷۲.۷۳٪ میباشد.
نمودار AUC به صورت بهینه شده و معمولی به صورت زیر است:
نتایج کلی آزمایش در نمودارهای زیر نشان داده شدهاست:
پی.نوشت:
در روند انجام کار خطاها و ایراداتی وجود داشت که در متن آنها بیان شد. ایرادات در نتایج آزمایش اثر گذار هست ولی برای آشنایی دوستان با روند انجام کارهای دادهکاوی تصمیم گرفتم با همان ایرادات ولی با ذکر آنها مطلب را منتشر کنم.
در صورتی که ایراد دیگری مشاهده میکنید در نظرات بیان کنید.
مطلبی دیگر از این انتشارات
برنامه نویسی نیستم ولی میخواهم دادهکاوی کنم! نرم افزار RapidMiner
مطلبی دیگر از این انتشارات
تنسورفلو ۱۳: دسته بندی ویدئو
مطلبی دیگر از این انتشارات
ارزیابی مدل در یادگیری ماشین برای مسائل دسته بندی