هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی
در این یخش از آموزش هوش مصنوعی با پایتون ما به پیادهسازیِ یادگیری نظارتشده – طبقهبندی خواهیم پرداخت.
روش طبقهبندی یا مدل سعی در نتیجهگیری از مقادیر مشاهدهشده دارد. در مسائل طبقهبندی، ما خروجی دستهبندیشده مانند ” سیاه ” یا ” سفید ” و ” تدریس ” و ” غیر آموزش ” داریم. در حین ساختن مدل طبقهبندی باید دیتاست آموزشدیده[1] داشته باشیم که شامل نقاط داده[2] و برچسبهای[3] متناظر باشد. بهعنوانمثال اگر میخواهیم بررسی کنیم که تصویر یک ماشین است یا خیر، برای بررسی این موضوع یک دیتاست آموزشی برای دو کلاس مربوط به “ماشین” و “بدون ماشین” ایجاد خواهیم کرد. سپس باید مدل را با استفاده از نمونههای آموزش[4]، آموزش دهیم. مدلهای طبقهبندی عمدتاً در تشخیص چهره، شناسایی اسپم و غیره مورد استفاده قرار میگیرند.
مراحل ساخت طبقهبندی کننده[5] در پایتون
برای ساخت طبقهبندی کننده در پایتون ما قصد داریم از پایتون 3 و Scikit – learn استفاده کنیم که ابزاری برای یادگیری ماشین است. برای ساخت طبقهبندی کننده در پایتون این مراحل را دنبال کنید:
مرحله 1: کتابخانه Scikit – learn را وارد کنید[6]
این اولین گام برای ساخت طبقهبندی کننده در پایتون خواهد بود. در این مرحله یک پکیج پایتون با نام Scikit – learn نصب خواهیم کرد که یکی از بهترین ماژولهای یادگیری ماشین در پایتون است. دستور زیر به ما در واردکردن پکیج کمک میکند:
Import Sklearn
دستور بالا را در خط فرمان ویندوز (cmd) تایپ کنید.
مرحله 2: دیتاست Scikit – learn را وارد کنید
در این مرحله ما میتوانیم کار را با دیتاستی برای مدل یادگیری ماشین خود شروع کنیم. در اینجا ما قصد داریم از بانک اطلاعاتی تشخیصیِ سرطان پستان ویسکانسین استفاده کنیم. دیتاست شامل اطلاعات مختلفی در مورد تومورهای سرطان پستان و همچنین برچسبهای طبقهبندیِ بدخیم یا خوشخیم است. دیتاست دارای 569 نمونه یا داده در 569 تومور است و شامل اطلاعاتی در مورد 30 صفت یا ویژگی مانند شعاع تومور، بافت، صافی و ناحیه تومور است. با کمک دستور زیر میتوانیم دیتاست سرطان پستان را وارد کنیم:
From sklearn.datasets import load-breast-cancer
اکنون دستور زیر باعث بارگذاری دیتاست خواهد شد:
Data = load-breast-cancer()
در زیر لیستی از کلیدواژههای مهم واژهنامه آمده است:
Classification label names (target-names)………………………………اسامی برچسب طبقهبندی (اسامی- هدف)
The Actual Labels (target)……………………………………………………………………. اسامی واقعی (هدف)
The attribute / feature names (feature-names) ……………………………… ویژگی / نام ویژگی (اسامی – ویژگی)
The attribute (data)…………………………………………………………………………..……….. ویژگی (داده)
اکنون با کمک دستور زیر میتوانیم متغیرهای جدیدی را برای هر مجموعه مهم از اطلاعات ایجاد کنیم و دادهها را اختصاص دهیم. بهعبارتدیگر میتوانیم دادهها را با دستورات زیر ساماندهی کنیم:
Label_names = data [‘target_names’]
Labels = data [‘target’]
Feature_name = data [‘feature_names’]
Features = data [‘data’]
اکنون برای روشنتر شدن آن میتوانیم با کمک دستورات زیر برچسبهای کلاس، برچسب نمونه دادههای اول، نام ویژگی و مقدار ویژگی را چاپ میکنیم.
Print (label_names)
دستور فوق اسامی کلاس را که به ترتیب بدخیم و خوشخیم هستند چاپ میکند. خروجی در زیر نشان داده شده است:
[‘malignant’ ‘benign’]
اکنون دستور زیر نشان میدهد که آنها به مقادیر باینری 0 و 1 نگاشت شدهاند. اینجا 0 نشاندهنده سرطان بدخیم و 1 نشاندهنده سرطان خوشخیم است.
Print(labels[0])
0
دو دستور ذکرشده نام ویژگیها و مقادیر ویژگیها را تولید میکنند.
print(feature_names[0])
mean radius
print(features[0])
[1.79900000e+01 1.03800000e+01 1.22800000e+02 1.00100000e+03
1.18400000e-01 2.77600000e-01 3.00100000e-01 1.47100000e-01
2.41900000e-01 7.87100000e-02 1.09500000e+00 9.05300000e-01
8.58900000e+00 1.53400000e+02 6.39900000e-03 4.90400000e-02
5.37300000e-02 1.58700000e-02 3.00300000e-02 6.19300000e-03
2.53800000e+01 1.73300000e+01 1.84600000e+02 2.01900000e+03
1.62200000e-01 6.65600000e-01 7.11900000e-01 2.65400000e-01
4.60100000e-01 1.18900000e-01]
از خروجی فوق میتوانیم مشاهده کنیم که اولین نمونه دادهها توموری بدخیم است که شعاع آن 1.7990000e + 01 است.
مرحله 3: سازماندهی دادهها به مجموعهها
در این مرحله دادههای خود را به دو بخش یعنی یک training set (مجموعه دادههایی که برای آموزش مدل و یادگیری استفاده میشود) و یک test set (مجموعه آزمایشی که برای امتحان یادگیری ماشین استفاده میشود) تقسیم دادهها در این مرحله بسیار مهم است زیرا باید مدل خود را بر روی دادههای دیده نشده آزمایش کنیم. برای تقسیم دادهها به مجموعهها، پکیج sklearn تابعی به نام train_test_split() دارد. با کمک دستور زیر میتوانیم دادهها را در این مجموعهها تقسیم کنیم.
from sklearn.model_selection import train_test_split
دستور فوق تابع train_test_split را وارد (import) میکند و دستور زیر دادهها را به دادههای آموزشی و تست تقسیم میکند. در مثال زیر ما از 40% دادهها برای آزمایش و از دادههای باقیمانده برای آموزش مدل استفاده میکنیم.
train, test, train_labels, test_labels = train_test_split(features,labels,test_size = 0.40, random_state = 42)
ادامه مقاله را از لینکهای زیر بخوانید:
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت دوم)
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت سوم)
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت چهارم)
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت پنجم)
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت آخر)
[1] Trained
[2] Data Points
[3] Label
[4] Training Sample
[5] Classifier
[6] Import