داده کاوی
دادههای
خام
دادههای
هدف
پاکسازی
دادهها
ارائه دانش
الگوها
یکپارچگی
دادهها
تبدیل دادهها
پیش پردازش دادهها
تشخیص الگو
دادهکاوی از دو مرحله اصلی تشکیل شده است؛ مرحله اول پیش پردازش دادهها که در این مرحله خصیصههای با تأثیر بالاتر از دادههای سطح پایین استخراج میشود. مرحله دوم تشخیص الگو میباشد که به کشف الگوی موجود در دادهها به کمک صفات و خصیصههای بدست آمده میپردازد.
دادهکاوی را میتوان سیر تکاملی طبیعی تکنولوژی اطلاعات دانست، که این سیر تکاملی ناشی از یک بلوغ در صنعت پایگاه داده نظیر: عملیات جمع آوری دادهها و ایجاد پایگاه داده، مدیریت داده و تحلیل و فهم داده میباشد.
داده کاوی تحلیل دادههای قابل مشاهده برای کشف ارتباطات غیرمنتظره و خلاصه کردن دادهها به صورتی بدیع است که برای دارندهی اطلاعات مفید و قابل درک باشد [۱۶]. کاوش اطلاعات، حجم عظیمی از دادههای خام را به فرمی تغییر میدهد که انسان بتواند آنها را به راحتی بفهمد و برای تصمیم گیری بتواند از این اطلاعات استفاده کند. در مسائل داده کاوی، هر چه حجم دادهها بیشتر میشود، میل بیشتری برای کشف الگوهای مخفی در دادهها به وجود میآید. در قدم اصلی داده کاوی ممکن است از چندین الگوریتم داده کاوی استفاده شود. کار اصلی الگوریتم داده کاوی با توجه به نوع مسئلهی کشف دانش تغییر میکند اما دو نوع اصلی الگوریتمهای داده کاوی، دستهبندی و خوشهبندی است.
اصلیترین دلیلی که باعث شد داده کاوی در علوم پزشکی مورد توجه بسیاری قرار بگیرد، مسأله در دسترس بودن حجم وسیعی از دادهها و نیاز شدید به اینکه از این دادهها، اطلاعات و دانش استخراج شود. دادهکاوی عبارت است از استخراج دانش از مجموعهای از دادهها.
۲-۳- دستهبندی
هرگاه دادهها دارای خصیصهای خاص باشند که مستقیماً از دیگر خصایص به وجود نیامده باشد اما بین آن مشخصه و دیگر ابعاد رابطه وابستگی وجود داشته باشد، در این صورت میتوان با کشف مدلی بر اساس دیگر مشخصه ها، آن بعد مذکور (که نشان دهنده دسته خاصی از دادهها است) را شناسایی نمود. فرض کنید که مشخصات تعدادی بیمار در پایگاه دادهای وجود دارد که قبلاً با بهره گرفتن از آزمایش خاص دو نوع بیماری مشخص شده که هرکدام از این بیماران به کدام بیماری مبتلا هستند، در این جا هیچ فردی حق ندارد هر دو بیماری را داشته باشد، سالم بوده و یا بیماری دیگری داشته باشد، به این معنی که دسته ها فضای مسئله را افراز میکند. در چنین پایگاه دادههایی برای هر بیمار یک رکورد خاص وجود دارد که شامل علائم بیمار و در نهایت نام یا برچسب بیماری که بیمار به آن مبتلا شده است میباشد. یک داده کاو تصمیم میگیرد سیستمی را ابداع کند که طی آن بدون آزمایش و فقط از روی علائم بیمار بتوان نوع بیماری وی را تشخیص داد. این تصمیم ممکن است به هر دلیلی مثلاً کمبود امکانات صورت گرفته باشد. آنچه باید انجام شود عملیات دسته بندی نامیده میشود. هدف دستهبندی؛ آموزش یک نگاشت از ورودیهای x به خروجیهای y است، که در آن ، C تعداد کلاسها را مشخص میکند. اگر C=2 دستهبندی را دستهبندی دودویی مینامیم ( )، اگر C>2 باشد، این نوع دستهبندی را دستهبندی چند کلاسه مینامیم [۱۷].
دستهبندی دادهها یک فرایند دو مرحلهای است. اولین مرحله ساخت مدل و دومین مرحله استفاده از مدل و پیشبینی کلاس از طریق مدل ساخته شده است. برای این منظور باید مجموعه دادهها را به دو دسته دادههای آموزش و دادههای تست تقسیم کنیم. با بهره گرفتن از دادههایی که برچسب آموزش خوردهاند یک دستهبند ایجاد میشود که بر اساس آن بتوان دادههای فاقد برچسب را در دستهه ای مربوط به خودشان قرار داد. کارایی دستهبند ساخته شده با دادههای تست (که به صورت تصادفی از میان دادهها انتخاب شدهاند) مورد سنجش قرار میگیرد و مدل روی آنها اجرا میشود تا دقت پیش بینی دستهبند بررسی گردد، چنان که مدل دارای دقت مناسبی باشد برای دستهبندی دادهها به کار میرود.
در دستهبندی یادگیری به وسیله نمونهها انجام میگیرید و برچسب هر یک از دسته ها مشخص است. سپس نمونهها بر حسب ویژگیهایشان به دستهه ای از قبل مشخص شده، تخصیص داده میشوند. در حالی که در خوشهبندی دادهها به خوشههای مختلف که از قبل معین نیستند تقسیم میشوند، بر این اساس که دادههای درون خوشه مشابه و دادههای خوشههای مختلف متفاوت باشند. خوشه بندی به فرایند تقسیم بندی داده به یک یا چند گروه به طوری که فاصلهی بین خوشهها حداکثر و فاصلهی درون خوشهها حداقل باشد، اطلاق میشود.
۲-۴- الگوریتمهای رایج دستهبندی
روشهای زیادی برای دستهبندی وجود دارد که از جمله میتوان به مواردی که در ادامه به آنها اشاره میشود اشاره کرد:
-
- شبکههای عصبی مصنوعی[۱]
-
- درختهای تصمیم[۲]
-
- شبکههای بیزین
-
- k نزدیکترین همسایه[۳]
-
- ماشین بردار پشتیبان[۴]
-
- روشهای مبتنی بر قانون
۲-۴-۱- شبکههای عصبی مصنوعی
مطالعه شبکههای عصبی مصنوعی تا حد زیادی الهام گرفته از سیستمهای یادگیر طبیعی است که در آنها یک مجموعه پیچیده از نرونهای به هم متصل در کار یادگیری دخیل هستند. گمان میرود که مغز انسان از تعداد ۱۰۱۱ نرون تشکیل شده باشد که هر نرون با تقریباً ۱۰۴ نرون دیگر در ارتباط است. سرعت انتقال نرونها در حدود ۱۰-۳ ثانیه است که در مقایسه با کامپیوترها ( ۱۰-۱۰ ثانیه) بسیار ناچیز می کند. با این وجود آدمی قادر است در ۰٫۱ ثانیه تصویر یک انسان را باز شناسائی نماید. این قدرت فوقالعاده باید از پردازش موازی توزیع شده در تعدادی زیادی از نرونها حاصل شده باشد [۱۸].
این شبکهها یادگیری را از روی مثالها و نمونهها انجام میدهند و از این لحاظ در عمل یادگیری شبیه به انسان عمل میکنند. مزیت دیگر آنها این است که این شبکهها از توانایی تعمیم دهی ذاتی برخوردار هستند؛ یعنی این شبکهها توانایی تشخیص الگوهایی را که شبیه نمونههایی که قبلاً یاد گرفته باشد را دارد نه اینکه تنها الگوهای دقیقاً همانند نمونههای آموزشی را تشخیص دهد [۱۹].
شبکه عصبی مصنوعی روشی عملی برای یادگیری توابع گوناگون نظیر توابع با مقادیر حقیقی، توابع با مقادیر گسسته و توابع با مقادیر برداری میباشد. یک نرون به تنهایی فقط میتواند برای شناسایی توابعی که به صورت خطی تفکیک پذیرند بکار رود، از آنجا که در مسائل واقعی عموماً توابع به صورت خطی جدایی پذیر نیستند شبکهای از نرونها مورد نیاز میباشد.
انواع شبکههای عصبی برای حل مسائل مختلف یادگیری بانظارت، یادگیری بدون نظارت و یادگیری تقویتی استفاده میشوند. شبکههای عصبی بر حسب انواع اتصالات به دو نوع رو به جلو FNN[5] و بازگشتی RNN[6] تقسیم میشوند. FNN ها معمولترین نوع شبکههای عصبی است که در کاربردهای مختلف استفاده میشوند. لایه اول لایه ورودی نامیده میشود و لایه آخر لایه خروجی است و هر تعداد لایه میان این دو لایه را لایههای میانی یا مخفی مینامند زیرا در عمل ما تنها با ورودی و خروجیهای شبکه عصبی کار داریم. شبکه عصبی به صورت یک جعبه سیاه کار میکند و دسترسی مستقیم به لایههای میانی میسّر نیست. شبکههای عصبی بازگشتی دارای چرخههای جهتدار در ساختار گرافهای ارتباطشان هستند یعنی با دنبال کردن ارتباطات بین گرهها میتوان به گرهها قبلی و آغازین بازگشت. RNN ها با توجه به ساختارشان دینامیک پیچیدهای دارند و این امر آموزش این شبکهها را بسیار پیچیده میکند. ضمن اینکه از لحاظ بیولوژیکی شبکههای عصبی بازگشتی به واقعیت نزدیکتر هستند.
شبکههای FNN با بیش از یک لایه مخفی را MLP[7] و شبکههای FNN با یک لایه مخفی را SLP مینامیم و در آن خروجی نرونها در هر لایه تابعی غیر خطی از خروجیهای لایههای قبلی است. تعداد نرونهای لایه ورودی و خروجی ثابت است، تعداد نرونهای لایه ورودی برابر با فضای مشخصه ها و تعداد نرونهای لایه خروجی با توجه به تعداد کلاسها مشخص میشود. در MLP گرهها (نرونها) معمولاً در لایههایی در شبکه عصبی مرتب میشوند هر گره تنها ورودیهایی از لایه قبل دریافت میکند و تابعی از ورودیها را ارائه میدهد.
لایه ورودی
لایه مخفی
لایه خروجی
فضای خصیصهها
تعداد کلاسها
شکل ۲- ۲: ساختار SLP [20]
هر واحد یک خروجی را منتشر میکند که تابعی غیر خطی از مقادیر ورودی است [۲۰]. f تابع فعالسازی است که بر روی مجموع ضرب وزنها در ورودیهای هر گره اعمال میگردد. معروفترین تابع فعالسازی که در شبکههای عصبی استفاده میشود تابع سیگموئید یا لجستیک نام دارد که در آن؛
(۲-۱)
رفتار شبکه عصبی با توجه به مقادیر وزنهای آن تعیین میشود. شبکه عصبی بهترین مقادیر وزنها و بایاسها را با توجه به مجموعه داده موجود یاد میگیرد، در واقع آموزش شبکه عصبی شامل تنظیم وزنها و بایاسها تا موقعی که شرایط مشخصی برآورده گردد میشود. تنظیم وزنها به گونهای صورت میگیرد که میزان خطا میان خروجی مطلوب و خروجی شبکه عصبی را کاهش دهد.
Net j