داده کاوی با پایتون _ طبقه‌بندی

 داده کاوی با پایتون _ طبقه‌بندی  موضوع این مقاله و یکی از تکنیک های دیتا ماینینگ در ادامه آموزش داده کاوی با پایتون-آماده سازی و تصویرسازی داده ها

میباشد.

در فرآیند داده کاوی ابتدا مجموعه داده­ های بزرگ مرتب می شود سپس الگوها شناسایی و به کشف دانش ختم می شود.

دو نوع داده کاوی موجود است:

  •  روش‌های پیش بینی 
  •  روش‌های توصیفی

وجود دارد که تکنیک طبقه­ بندی یا Classification جز روش پیش بینی قرار دارد.

طبقه بندی با پیش بینی ساده ی آیا باران می آید یا نه، وام می گیرم یا نه، این گل مربوط به کدام دسته است، سقوط یا صعود بورس و …. شروع می شود.

هدف از کلاسیفیکیشن داده ها این است که با استفاده از دیتاست بعد از ایجاد یک مدل، بتوانیم با این مدل کلاس داده های جدید را پیش بینی کنیم .

طبقه‌بندی (Classification) در داده کاوی

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

  1. آموزش (Training ): فرآیند جمع‌آوری داده‌هایی است که مشخص می‌شود متعلق به کلاس‌های مشخص هستند و ایجاد یک طبقه‌بندی بر اساس آن داده‌های شناخته‌شده. در این آموزش ما ۹۰ نمونه از دیتاست را براساس ویژگی های مشابه در یک گروه قرار میدهیم.
  2. آزمایش (Classification ): حالا که ۹۰ نمونه را آموزش دادیم و با زدن برچسب مشخص شد که داده ها جزو کدام دسته باشند، نوبت به این میرسه که ۴۰ مورد باقیمانده به عنوان نمونه ی ناشناس توسط یک طبقه بند مورد آزمایش قرار می گیرند تا مشخص شود به کدام کلاس تعلق دارند.

طبقه بندی در یادگیری با نظارت

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


در دنیای ما، اگر  درگیر یافتن پاسخ سوالی باشیم، منابع گوناگونی از جمله اساتید، کتب اینترنت و … به کمک ما می آیند و به ما در فهم آن سوال آموزش می دهند.
در دنیای کامپیوتر دو روش برای یادگیری وجود دارد که طبقه بندی جز یادگیری با نظارت است:

  1. یادگیری با نظارت یا Supervised learning
  2. یادگیری بدون نظارت

 مثالی از طبقه بندی به زبان ساده

فرایند طبقه ­بندی به این صورت است که براساس یک مجموعه آموزشی سیستم یاد می ­گیرد داده ­ها را به رده های درست با بیشترین دقت تقسیم ­بندی کند. 

با توجه به دیتاست استفاده شده در این آموزش iris ، حدود ۱۵۰ نمونه داریم که حدود ۶۰ درصد آنها را آموزش (Train) میدهیم و حدود ۴۰ درصد آنها را برای تست (Test)  و پیش بینی استفاده می کنیم.

 برای درک مفهوم طبقه بندی، دیتا ست iris با ۱۵۰ نمونه را در نظر بگیرید. ما می خواهیم ببینیم  یک نمونه ی جدیدی از این گل مربوط به کدام دسته ی ستوس، ورسی کلر و ویرجینیا تعلق دارد. 

ویژگی های دیتا ست  Iris :

  • sepal length به cm 
  • sepal width به cm
  • petal length به cm
  • petal width به cm

و کلاسهای هدف برای پیش بینی :

  • Iris Setosa
  • Iris Versicolour
  • Iris Virginica

هر نمونه از دیتاست یک ردیف یا  رکورد نامیده میشود. همچنین حداقل ۲ ستون که یکی برای قرار دادن ویژگی نمونه و یکی هم برای کلاس یا طبقه که مشخص میکند هر نمونه مربوط به کدام کلاس است. به ستون ویژگی بعد هم گفته میشود به عنوان مثال دیتاست ایریس دارای ۴ بعد و۳ طبقه است. 

 

طبقه sepal length
طول کاسبرگ
sepal width
عرض کاسبرگ
petal length
طول گلبرگ
petal widthعرض گلبرگ
Setosa  ۵٫۱ ۳٫۵ ۱٫۴ ۰٫۲

مفهوم طبقه بندی از ستون کلاس یاطبقه گرفته شده است.

انواع طبقه بندی

از انواع طبقه بندی می توان به موارد زیر اشاره کرد:

  • طبقه بندی باینری، Binary Classification:‌ در یادگیری ماشین، دسته بندی دودویی یک الگوریتم یادگیری نظارت شده است که مشاهدات جدید را در یکی از دو کلاس موجود طبقه بندی می کند. به عنوان مثال هنگام آنالیز ایمیل، بررسی میشود که آیا اسپم هست یا نه.
  • طبقه ­بندی چند کلاسه، Multi-Class Classification: در یادگیری ماشین، دسته بندی چند کلاسه یک الگوریتم یادگیری نظارت شده است که مشاهدات جدید را در بیش از دو کلاس گروه بندی می کند. به عنوان مثال رده بندی گونه های گیاهی

کتابخانه sklearn در طبقه بندی

sklearn  شامل پیاده‌سازی مدل‌های زیادی برای طبقه‌بندی است و در این بخش نحوه استفاده از Gaussian Naive Bayes را برای شناسایی گل‌های زنبق به‌ نام های

  1. setos
  2. versicolor
  3. virginica

می پردازیم.در ابتدا ورژن پایتون خود را برنامه نویسی بررسی کنید


!python -V

اگر از پایتون ۳ استفاده میکنید از قطعه کد زیر استفاده کنید تا به دیتا ست iris هم دسترسی و هم آن را مشاهده کنید.


import urllib.request

url= urllib.request.urlopen('http://aima.cs.berkeley.edu/4th-ed/data/iris.csv')

show =url.read().decode('utf-8')

print(show)

با استفاده از مجموعه داده‌ای که در  بالا بارگذاری کردیم، دیتاست iris را به سه دسته تقسیم می کنیم. برای این منظور بردار رشته هایی که کلاس را در خود دارند به اعداد صحیح تبدیل می کنیم:


t = zeros(len(target))
t[target == 'setosa'] = 1
t[target == 'versicolor'] = 2
t[target == 'virginica'] = 3

]اکنون ما آماده ایم تا طبقه بندی کننده خود را نمونه سازی و آموزش دهیم:


from sklearn.naive_bayes import GaussianNB
classifier = GaussianNB()
classifier.fit(data,t) # آموزش دیتا ست ایریس

طبقه بندی را می توان با روش پیش بینی انجام داد و آزمایش آن با یکی از نمونه ها آسان است:


t = zeros(len(target))
t[target == 'setosa'] = 1
t[target == 'versicolor'] = 2
t[target == 'virginica'] = 3
from sklearn.naive_bayes import GaussianNB
classifier = GaussianNB()
classifier.fit(data,t) # آموزش بر روی دیتاست iris
print (t[0])

در این مورد، کلاس پیش‌بینی‌شده برابر با کلاس صحیح (setosa) است، اما مهم است که طبقه‌بندی‌کننده را در طیف وسیع‌تری از نمونه‌ها ارزیابی کنیم و آن را با داده‌هایی که در فرآیند آموزش استفاده نشده است، آزمایش کنیم.

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

from sklearn.model_selection import train_test_split
train, test, t_train, t_test = train_test_split(data, t,test_size=0.4, random_state=0)

مجموعه داده تقسیم شده است و اندازه آزمون ۴۰٪ از اندازه اصلی است که با پارامتر test_size مشخص شده است. با این داده ها می توانیم دوباره طبقه بندی کننده را آموزش دهیم و دقت آن را چاپ کنیم:

classifier.fit(train,t_train) # آموزش
print (classifier.score(test,t_test)) # آزمون
در این مورد ما ۹۳ درصد دقت داریم. دقت یک طبقه‌بندی بر اساس تعداد نمونه‌های طبقه‌بندی شده صحیح بر تعداد کل نمونه‌های طبقه‌بندی‌شده به دست می‌آید. به عبارت دیگر، به این معنی است که نسبت تعداد کل پیش‌بینی‌هایی است که درست بوده‌اند.

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


2 دیدگاه مقاله ی "داده کاوی با پایتون _ طبقه‌بندی"

  1. neda گفت:

    سلام
    من فقط میخواستم از سایت خوبتون و بخصوص کانال عالیتون تشکر کنم..ممنون

دیدگاهتان را بنویسید

We are glad you have chosen to leave a comment. Please keep in mind that comments are moderated according to our comment policy.