دسته بندی دادهها فرایند کشف دانش پنهان در داده های عظیم است. در فرآیند داده کاوی، ابتدا مجموعه دادههای بزرگ مرتب میشوند، سپس الگوها شناسایی شده و روابطی برای انجام تجزیه و تحلیل دادهها و حل مشکلات ایجاد میشود. در واقع داده کاوی فرآیندی است جهت استخراج اطلاعات از یک مجموعه داده و تبدیل آنها به یک ساختار قابل درک است و وظیفه اصلی آن تجزیه و تحلیل خودکار یا نیمه خودکار مقادیر زیادی از دادهها برای استخراج الگوهای جالب قبلا ناشناخته است.
دسته بندی به دستهای از الگوریتمهای داده کاوی گفته میشود که از طریق آنها میتوان مجموعهای از دادهها را تجزیه و تحلیل کرده و یک دسته از قوانین گروه بندی ایجاد نمود. از این قوانین میتوان برای طبقه بندی دادههاد در آینده استفاده شود.
در حقیقت این روش یک فرآیند محاسباتی برای کشف الگوها در مجموعه دادههای بزرگ است که شامل روشهایی از هوش مصنوعی، یادگیری ماشین، آمار و سیستمهای پایگاه داده است. دسته بندی یکی از روشهای اصلی در داده کاوی است و به طور گسترده در حوزههای مختلف استفاده میشود. از این رو در ادامه سعی داریم برخی از مهمترین روشهای دسته بندی دادهها در داده کاوی را معرفی کنیم.
دسته بندی چیست؟
دسته بندی (Classification) یکی از روشهای داده کاوی است که برای پیش بینی چگونگی عضویت نمونههای داده در گروههای گوناگون استفاده میشود. در دسته بندی هر نمونه از چند ویژگی تشکیل شده است که یکی از آنها با عنوان ویژگی دسته شناخته میشود. در روشهای دسته بندی الگوریتم در ابتدا در مرحله آموزش یک مدل یاد میگیرد و سپس در مرحله ارزیابی، کارایی مدل فرا گرفته شده بررسی میشود.
دسته بندی یک روش پیش بینی با ناظر است
الگوریتمهای یادگیری در داده کاوی به دو گروه روشهای پیش بینی و روشهای توصیفی طبقه بندی میشوند. در روشهای پیش بینی از مقادیر برخی از ویژگیها برای پیش بینی مقدار یک ویژگی مشخص استفاده میشود، به همین دلیل روشهای پیش بینی با عنوان روشهای با ناظر (Supervised methods) نیز شناخته میشوند. روشهای دسته بندی به دلیل اینکه ویژگی دسته مربوط به هر رکورد مشخص است، جز روشهای پیش بینی با ناظر محسوب میشوند.
روشهای دسته بندی چگونه عمل میکنند؟
در روشهای دسته بندی، کل دادههای اولیه را به دو مجموعه داده با نام مجموعه داده آموزشی (Train dataset) و مجموعه داده آزمایشی (Test dataset) تقسیم میکنند. هر نمونه دارای برچسب مخصوص به خود است و هدف الگوریتم دسته بندی پیدا کردن نظم موجود در برچسبهای مختلف بر اساس دیگر ویژگیهای نمونهها میباشد.
در این روش به کمک مجموعه داده آموزشی یک مدل اولیه ساخته میشود، به عنوان مثال اگر از الگوریتم درخت تصمیم استفاده شود، مدل ایجاد شده یک درخت تصمیم خواهد بود. از مجموعه داده آزمایشی نیز برای اعتبارسنجی و سنجش دقت مدل ایجاد شده استفاده میشود. در مرحله ارزیابی، بر اساس مجموعه دادههای آزمایشی دقت و کارایی مدل ساخته شده ارزیابی خواهد شد.
توجه داشته باشید دادههایی که در مرحله ارزیابی استفاده میشوند در مرحله آزمایش و برای ساخت مدل مورد استفاده قرار نگرفتهاند. به این معنی که با وجود اینکه الگوریتم دسته بندی برچسب دسته نمونههای آزمایشی را در اختیار دارد اما اجازه استفاده از آنها را در مرحله آموزش را ندارد تا بتوان میزان دقت روش دسته بندی را به خوبی اندازه گیری کرد.
پس به طور خلاصه باید گفت، دسته بندی شامل دو مرحله زیر است.
• مرحله اول: ساخت یک مدل بر اساس مجموعه دادههای آموزشی
• مرحله دوم: از مدل ساخته شده در مرحله اول برای دسته بندی یک نمونه ناشناخته به یک ویژگی دسته استفاده میشود
بیشتر بخوانید: ۴ مورد از الگوریتمهای پرکاربرد در داده کاوی
معرفی روشهای دسته بندی دادهها
هدف اصلی یک الگوریتم دسته بندی به حداکثر رساندن دقت پیش بینی است و برای این منظور الگوریتمهای گوناگونی ایجاد شده است که برخی از مهمترین آنها به شرح زیر است.
• درخت تصمیم (Decision Tree)
• K- نزدیکترین همسایه (K-Nearest Neighbor)
• ماشینهای بردار پشتیبان (Support Vector Machines)
• دسته بندی کننده بیز ساده (Naive Bayesian Classifiers)
• شبکههای عصبی (Neural Networks)
در ادامه قصد داریم به معرفی هر یک از این روشها بپردازیم.
درخت تصمیم
درخت تصمیم یکی از معروفترین روشهای دسته بندی دادهها در داده کاوی است که برای کمک به تصمیم گیری ساخته میشود. از این ساختار برای تقسیم مجموعهای بزرگ از دادههای جمع آوری شده به مجموعههای کوچکتر استفاده میشود، این عمل به واسطه یک مجموعه از قوانین ساده تصمیم گیری صورت میگیرد. در هر تقسیم بندی متوالی، اعضای مجموعههای حاصل بیش از پیش به یکدیگر شبیه میشوند.
درخت تصمیم یک تقسیم بندی کننده بازگشتی فضای نمونه است. این مدل از چند گره و یک ریشه تشکیل شده است و همه گرهها به جز ریشه دقیقا یک لبه ورودی دارند. یک درخت تصمیم با یک گره اولیه شروع میشود که پس از آن پیامدهای احتمالی به صورت شاخههایی از آن منشعب شده و هر کدام از آن پیامدها به گرههای دیگری منجر شده که آنها نیز شاخههایی از احتمالات دیگر را ایجاد میکنند.
به گره های بدون خروجی برگ گفته می شود (به عنوان گرههای انتهایی یا تصمیم گیری نیز شناخته میشود). در یک درخت تصمیم، هر گره داخلی فضای نمونه را به دو یا چند فضای فرعی تقسیم میکند که یک تابع گسسته خاص از مقادیر ویژگیهای ورودی است. برخی از مزایای درخت تصمیم به شرح زیر است.
مزایای درخت تصمیم
• درختان تصمیم به راحتی قابل تفسیر هستند
• درخت تصمیم نیاز به محاسبات پیچیده برای دسته بندی دادهها ندارد.
• درخت تصمیم نشان میدهد که کدام مشخصه تاثیر بیشتری در دسته بندی دارد
• به دادههای پیچیده و دقیق احتیاج ندارد
• در صورت نیاز میتوان گزینههای جدیدی را به آن اضافه کرد
• در انتخاب بهترین گزینه از میان گزینههای مختلف کارایی خوبی دارد
• با روشهای تصمیمگیری دیگر به خوبی سازگار است
برخی از معایب درخت تصمیم به شرح زیر است.
• درختهای تصمیم به صورت نمایی با بزرگ شدن مسئله بزرگ میشوند
• درختهای تصمیم معمولا تنها از یک ویژگی برای انشعاب گرهها استفاده میکنند
• ساخت درخت تصمیم حافظه زیادی مصرف میکند
یکی از کاربردهای درخت تصمیم ایجاد مدل پیش بینی خودکار است که در زمینه یادگیری ماشینی کاربرد دارند.
K- نزدیکترین همسایه
K- نزدیکترین همسایه یکی دیگر از روشهای دسته بندی است که در آن نیز یادگیری بر اساس نمونههای آموزشی انجام میشود. هر نمونه یک نقطه را در یک فضای N بعدی نشان میدهد. همه نمونههای آموزشی در یک فضای الگوی N بعدی ذخیره میشوند.
مرحله یادگیری الگوریتم، شامل ذخیره سازی بردارهای ویژگی و برچسب دسته نمونههای اولیه است. نمونههای آموزشی به عنوان بردارهایی در فضای ویژگی چند بعدی هستند که هر کدام شامل برچسبی به نام دسته میباشند. فضا به ناحیههایی با نمونههای آموزشی تقسیم میشود. هر نقطه در این فضا به کلاسی تعلق میگیرد که بیشترین نقاط آموزشی متعلق به آن کلاس در داخل نزدیکترین نمونه آموزشی به K در آن باشد.
در مرحله دسته بندی، K یک ثابت توسط کاربر تعریف میشود. این الگوریتم در دسته بندی با توجه به مقدار مشخص شده برای K به محاسبه فاصله نقطهای که میخواهیم برچسب آن را مشخص کنیم با نزدیکترین نقاط میپردازد و با توجه به تعداد رای حداکثری این نقاط همسایه، در رابطه با برچسب نقطه مورد نظر تصمیم گیری میکند. بردار بدون برچسب از دستهای است که بیشترین تعداد را در K نزدیکترین همسایه آن نقطه داشته باشد.
به این ترتیب برچسب نقطه بدون برچسب نیز مشخص میشود. برای محاسبه این فاصله میتوان از روشهای مختلفی استفاده کرد که یکی از مطرح ترین این روش ها، فاصله اقلیدسی است. با این حال، برای متغیرهای گسسته، مانند دسته بندی متون، میتوان از یک معیار دیگر مانند فاصله همینگ نیز استفاده کرد.
K- نزدیکترین همسایه یکی از روشهای ساده و در عین حال پرکاربرد دسته بندی است. این روش فرآیند دسته بندی را به صورت ساده انجام میدهد و نتایج به دست آمده نیز دارای دقت نسبتا بالایی هستند.
ماشینهای بردار پشتیبان
ماشینهای بردار پشتیبان یک روش بسیار موثر برای رگرسیون، دسته بندی و تشخیص الگوی کلی هستند اما به طور گسترده در اهداف دسته بندی استفاده میشوند. این روش با نام SVM نیز شناخته میشوند که مخفف Support Vector Machine میباشد.
هدف از اجرای الگوریتم ماشینهای بردار پشتیبان پیدا کردن یک هایپرپلین یا زیرصفحه (hyperplane) در یک فضای N بعدی (N برابر است با تعداد ویژگیها) است که به طور مشخص نقاط داده را دسته بندی میکند. برای جدا کردن دو دسته از نقاط داده، میتوان زیرصفحههای زیادی را انتخاب کرد اما در این روش هدف ما یافتن صفحهای است که دارای حداکثر حاشیه باشد، به این معنی که باید بین نقاط داده هر دسته با دسته دیگر حداکثر فاصله وجود داشته باشد تا نقاط آینده را بتوان را با اطمینان بیشتری دسته بندی کرد.
زیرصفحهها مرزهای تصمیم گیری هستند که به دسته بندی نقاط داده کمک میکنند. نقاط دادهای که در دو طرف زیرصفحهها قرار دارند را میتوان به دستههای مختلف نسبت داد. همچنین، ابعاد زیرصفحهها به تعداد ویژگیها بستگی دارد. به عنوان مثال، اگر دو ویژگی ورودی داشته باشیم، زیرصفحه فقط یک خط دارد و اگر سه ویژگی ورودی داشته باشیم آنگاه زیرصفحه به به صفحه ای دو بعدی تبدیل می شود.
بردارهای پشتیبان
بردارهای پشتیبان (Support vectors) نقاط دادهای هستند که به زیرصفحه نزدیکترند و بر روی موقعیت و جهت گیری آن تاثیر میگذارند. با استفاده از این بردارهای پشتیبان میتوانیم حاشیه دسته بندی را به حداکثر برسانیم. حذف بردارهای پشتیبان میتواند موقعیت زیرصفحه را تغییر دهد.
بسیاری از کارشناسان داده کاوی ترجیح میدهند از ماشینهای بردار پشتیبان استفاده کنند چرا که در این روش میتوان با انجام محاسبات کمتر به دقت بسیار خوبی دستیابی داشت. همچنین به دلیل قابلیت تعمیم بالا بدون نیاز به افزودن دانش پیش بینی حتی اگر ابعاد فضای ورودی بسیار زیاد باشد، یک دسته بندی کننده خوب محسوب میشود. با اینکه ماشینهای بردار پشتیبان در ابتدا برای دسته بندی باینری ساخته شدند اما میتوان آنها را برای مسائل چند کلاسه نیز گسترش داد.
برخی از مزایای ماشینهای بردار پشتیبان به شرح زیر است
• در مواردی که تعداد ابعاد از تعداد نمونه بیشتر باشد، موثر هستند
• برای دادههایی با ابعاد بالا مناسب هستند
• اموزش نسبتا ساده است
• حافظه مصرفی آن مناسب است، به دلیل اینکه از برای تصمیم گیری از زیرمجموعهای از نقاط آموزشی استفاده می کند
برخی از مهمترین کاربردهای ماشینهای بردار پشتیبان به شرح زیر است.
کاربردهای ماشینهای بردار پشتیبان
تشخیص چهره (Face detection): این الگوریتم قسمتهایی از تصویر را به عنوان صورت و غیر صورت دسته بندی می کند و یک مرز مربعی در اطراف صورت ایجاد میکند.
دسته بندی متن و ابرمتن (Text and hypertext categorization): ماشینهای بردار پشتیبان امکان دسته بندی متن و ابر متن را برای هر دو مدل استقرایی و استدلالی فراهم می کنند. در این روش از دادههای آموزشی برای طبقه بندی اسناد در دستههای مختلف استفاده میشود. دادهها بر اساس نمره تولید شده دسته بندی شده و سپس با مقدار آستانه مقایسه میشوند.
دسته بندی تصاویر (Classification of images): استفاده از ماشینهای بردار پشتیبان دقت جستجو برای دسته بندی تصاویر را بهبود میبخشد که این روش در مقایسه با روشهای سنتی جستجوی مبتنی بر پرسش، دقت بیشتری دارد.
بیوانفورماتیک (Bioinformatics): شامل دسته بندی پروتئین و دسته بندی سرطان است. از این روش برای شناسایی و دسته بندی ژن ها، بیماران بر اساس ژنها و سایر مشکلات بیولوژیکی استفاده میشود.
تشخیص پروتئین و همسانی از راه دور (Protein fold and remote homology detection): از این روش برای تشخیص همسانی پروتئینها از راه دور استفاده میشود.
تشخیص دست خط (Handwriting recognition): از ماشینهای بردار پشتیبان به طور گسترده برای تشخیص دست خط استفاده میشود.
دسته بندی کننده بیز ساده
دسته بندی کنندههای بیزی یک نوع روش دسته بندی آماری هستند که میتوانند عضویت یک نمونه در یک کلاس را بر اساس احتمالات پیش بینی کنند. دسته بندی کننده یک مدل یادگیری ماشین است که برای تفکیک اشیا مختلف بر اساس ویژگیهای خاص استفاده میشود. دسته بندی کنندههای بیزی بر اساس قضیه بیز با فرض استقلال متغیرهای تصادفی عمل میکنند. واژه Naive که به معنی ساده یا ساده لوحانه است به این فرض اشاره دارد. یعنی این تئوری فرض می کند که مقادیر یک ویژگی تحت تاثیر یا وابسته به حضور یا خصوصیات ویژگی های دیگر نیستند. قضیه بیز با توجه به احتمال پیشامدی دیگری که قبلا رخ داده است، احتمال وقوع یک پیشامد را پیدا میکند.
این روش از سادهترین الگوریتمهای پیش بینی است که دقت خوبی دارد و از بسیاری از روشهای دسته بندی پیچیده بهتر و سریعتر عمل میکنند. آنها برای تخمین پارامترهای لازم به مقدار کمی داده آموزشی نیاز دارند. وقتی ابعاد ورودیها زیاد باشد، روش دسته بندی کننده بیز ساده مناسب است. این روش یک الگوریتم پایدار است، به این معنی که یک تغییر کوچک در دادههای آموزشی تغییر بزرگی در مدل ایجاد نمیکند. دسته بندی کنندههای بیز ساده در بسیاری از کاربردهای دنیای واقعی مانند دسته بندی اسناد و فیلتر هرزنامه عملکرد مناسبی دارند.
شبکههای عصبی
شبکههای عصبی یکی از روشهای دسته بندی دادهها در داده کاوی است که در آن مدل یاد گرفته شده به صورت مجموعهای از گرههای به هم متصل به همراه ارتباطات وزندار آنها نمایش داده میشود. شبکههای عصبی برای تشخیص روابط در دادههای با حجم بالا از عملکرد مغز انسان الگو میگیرند، به همین دلیل در نام آنها از واژه نورون (Neuron) استفاده شده است و دارای دو نوع ارگانیک (Organic) و مصنوعی (Artificial) هستند.
شبکه های عصبی در فرآیند آموزش خود اطلاعات مربوطه را در شبکه ذخیره میکنند. این شبکه توانایی یادگیری دارد و میتواند با توجه به اطلاعات اولیه چیزی را فرا بگیرد و یا بر اساس آموختههای خود تصمیم گیری کند. شبکههای عصبی میتوانند با تغییر ورودی سازگار شوند، به همین دلیل بدون نیاز به طراحی مجدد معیارهای خروجی میتوانند بهترین نتیجه ممکن را تولید کنند.
همان طور که گفتیم یک شبکه عصبی مانند شبکه عصبی مغز انسان عمل میکند که نورون در آن یک تابع ریاضی است و اطلاعات را با توجه به معماری خاص خود جمع آوری و طبقه بندی میکند. این شبکه شباهت زیادی به روشهای آماری مانند برازش منحنی و تحلیل رگرسیون دارد. یک شبکه عصبی شامل چند لایه از گرههای به هم پیوسته است. هر گره یک گیرنده است و شبیه به یک رگرسیون خطی چندگانه است.
شبکههای عصبی که ریشه در هوش مصنوعی دارند به سرعت در توسعه سیستمهای تجاری محبوبیت پیدا کردند و امروزه از آنها در نرم افزارهای مختلف مالی، تحقیقات بازار، پیش بینی و بازاریابی،کشف تقلب و ارزیابی ریسک استفاده میشود. همچنین، شبکههای عصبی کاربردهای گوناگونی در پیش بینی قیمت در بازار سهام دارند. شبکههای عصبی در دنیای مالی به طبقه بندی اوراق بهادار، کشف تقلب، ارزیابی ریسک و ساخت شاخصهای مالی کمک میکنند.
جمع بندی و نتیجه گیری
از انواع روشهای دسته بندی جهت سازماندهی و تخصیص دادهها به دستههای مجزا استفاده میشود. در این فرآیند بر اساس مجموعه دادههای آموزشی، یک مدل اولیه ایجاد میشود، سپس از آن برای دسته بندی دادههای جدید استفاده میشود، به این ترتیب با به کارگیری مدل به دست آمده تعلق داده های جدید به دسته معین قابل پیش بینی است. به زبان ساده دسته بندی شامل بررسی ویژگیهای یک نمونه جدید و تخصیص آن به یکی از گروههای از قبل تعیین شده است. از انواع روشهای دسته بندی دادهها مانند درخت تصمیم و شبکههای عصبی در داده کاوی استفاده میشود که در بالا به برخی از آنها اشاره شده است.