خانه » مثال کاربردی طبقه بندی داده ها با پایتون

مثال کاربردی طبقه بندی داده ها با پایتون

به طور کلی به مساله هایی که در داده های آن یک ستون کلاس وجود داشته باشد طبقه بندی می گویند. این ستون توسط شخصی که داده را آنالیز می کند مشخص می شود به همین دلیل در داده کاوی به این مساله ها یادگیری با نظارت نیز گفته می شود چون یک ناظر این ستون را مشخص می کند. در ادامه بر روی یک مجموعه داده چند الگوریتم معروف و پرکاربرد طبقه بندی را با یکدیگر بررسی می کنیم.
معروف ترین کتابخانه برای طبقه بندی داده ها کتابخانه sklearn است. بسیاری از الگوریتم های یادگیری ماشین در این کتابخانه موجود است. همچنین مجموعه داده های مختلفی در این کتابخانه قرار دارد که می توان از آن ها برای اموزش و تست الگورتم های مختلف استفاده نمود.
مجموعه داده مورد استفاده در این مثال load_digits است. این مجموعه داده شامل دست نوشته های عددی است. هر دست نوشته یک عدد است که به یک عکس 8*8 تبدیل شده است. همچنین یک ستون کلاس هم وجود دارد که مشخص می کند هر عکس نشان دهنده چه عددی است. تعداد نمونه های موجود در این مجموعه داده 1797 عکس است و ستون کلاس شامل مقادیر 0 تا 9 است که متناظر با هر عکس است. برای استفاده از این مجموعه باید از کتابخانه sklearn استفاده کرد. نمونه عکس ها به همراه کلاس آن ها به صورت زیر است.

برای آنکه داده ها از کلاس ها جدا شوند به صورت زیر عمل می کنیم.

حال اگر از داده یک خروجی بگیریم عکس های ما تبدیل به یک ماتریس می شود که به صورت پیکسلی داده ها را ذخیره کرده است

اگر اطلاعات یک عکس را بخواهیم کافی است image را با اندیسش چاپ کنیم

[88]image

در این حالت متغییر image یک ماتریس است که هر سطر آن یک ماتریس ۸*۸ است. در واقع ۱۷۹۷ سطر داریم که هر سطر آن یک ماتریس ۸*۸ است که اطلاعات هر عکس را بیان می کند. برای آن که بتوانیم داده ها را طبقه بندی کنیم باید اطلاعات هر تصویر در یک سطر قرار گیرد در اینجا هر سطر ۶۴ پیکسل می شود(۸*۸).

تا اینجا تمامی کار هایی که انجام دادیم برای اماده سازی داده ها برای اجرای الگوریتم های طبقه بندی بود. در الگوریتم ها طبقه بندی به صورت کلی داده ها به دو قست تقسیم می شوند. یکی اموزش داده ها با الگوریتم مورد نظر و قسمت دیگر برای تست و ارزیابی روش و الگوریتم مورد نظر. معمولا ۷۰٪ داده ها برای اموزش و یادگیری استفاده می شود و ۳۰٪ برای تست. برای طبقه بندی داده ها و ارزیابی آن از کتابخانه sklearn استفاده می شود.

در ادامه به معرفی چند الگوریتم طبقه بندی می پردازیم و آن را بر روی مجموعه داده load_digit پیدا کرده و معیار های presion , recall , F1 را روی هر کدام بدست می آوریم.

ابتدا الگوریتم SVM

تابع train_test_split() دو ورودی می گیرد. داده ها و برچسب یا lable آن ها. آن ها را ۴ قسمت می کند

  1. قسمت اول ۷۰٪ داده های اموزش
  2. قسمت دوم ۳۰٪ داده های تست
  3. قسمت سوم ۷۰٪ برچسب های اموزش
  4. قسمت چهارم ۳۰٪ برچسب های تست.

حالا از بخش svm الگوریتم SCV اضافه می کنیم و X_train و y_train را برای یادگیری الگوریتم به عنوان ورودی به آن می دهیم. از ویژگی predict برای پیش بینی ۳۰٪ تست استفاده می کنیم.

برای ارزیابی الگوریتم هم از تابع classification_report استفاده می کنیم.

همانطور که مشاهده می کنید الگوریتم SVC با دقت ۰.۹۹ دیتای مربوط به load_digit را پیش بینی کرد.

در بخش دیگر به تفصیل راجع به معیار های presion , recall , F1 صحبت می کنیم.

الگوریتم KNeighbors:

روند پیاده سازی اکثر الگوریتم های طبقه بندی مشابه یکدیگر است. الگوریم KNeighbors یکی دیگر از الگوریتم های پرکاربرد در طبقه بندی و پیش بینی داده ها است. در یک اموزش جداگانه به صورت مفصل این الگوریتم را با یکدیگر بررسی خواهیم کرد.

به همین ترتیب می توانیم مجموعه داده های مختلف را با الگوریتم های متفاوت طبقه بندی و پیش بینی نماییم.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به بالای صفحه بردن