هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی
مرحله 4: ساختن مدل
در این مرحله ما در حال ساختن مدل خود هستیم. ما قصد داریم از الگوریتم Naïve Bayes برای ساخت مدل استفاده کنیم. از دستورات زیر میتوان برای ساخت مدل استفاده کرد:
from sklearn.naive_bayes import GaussianNB
دستور فوق ماژول GaussianNB را import میکند. اکنون دستور زیر به شما برای مقدار اولیه دادن به مدل کمک خواهد کرد.
gnb = GaussianNB()
ما مدل را با خوراندن آن به دادهها با استفاده از gnb.fit() آموزش خواهیم داد.
model = gnb.fit(train, train_labels)
مرحله 5: ارزیابی مدل و صحت آن
در این مرحله ما قصد داریم مدل را با انجام پیشبینیهایی بر روی دادههای آزمایشی ارزیابی کنیم. سپس دقت آن را نیز خواهیم فهمید. برای ساخت پیشبینی ما از تابع predict() استفاده خواهیم کرد. دستور زیر به شما در انجام این کار کمک خواهد کرد:
preds = gnb.predict(test)
print(preds)
[1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1
0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0
0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0
0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0
1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0 0 1 0 1 1 0
1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0
1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 1 1 0
1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1]
سری فوق از 0 و 1، مقادیر پیشبینیشده برای کلاس تومور بدخیم و خوشخیم است. اکنون با مقایسه دو آرایه یعنی test_labels و preds میتوان به صحت مدل خود پی برد. ما برای تعیین صحت قصد داریم از تابع accuracy_score() استفاده کنیم. دستور زیر را برای این مورد در نظر بگیرید:
from sklearn.metrics import accuracy_score
print(accuracy_score(test_labels,preds))
0.951754385965
نتیجه نشان میدهد که نتیجه طبقهبندی کننده Naïve Bayes با دقت 95.17% صحیح است. بهاینترتیب با کمک مراحل فوق میتوانیم طبقهبندی کننده خودمان را در پایتون بسازیم.
ساخت طبقهبندی کننده در پایتون
در این بخش، نحوه ساخت طبقهبندی کننده در پایتون را یاد خواهیم گرفت.
طبقهبندی کننده Naïve Bayes
Naïve Bayes یک روش طبقهبندی است که برای ساخت طبقهبندی کننده از قضیه Bayes (بیز) استفاده میکند. فرض بر این است که پیشبینی کنندهها مستقل هستند. به عبارت ساده، فرض بر این است که حضور یک ویژگی خاص در یک کلاس با حضور هیچ ویژگی دیگری ارتباط ندارد. برای ساخت طبقهبندی کننده Naïve Bayes باید از کتابخانهای از پایتون به نام Scikit Learn استفاده کنیم. سه نوع مدل Naïve Bayes به نامهای Gaussian، Multinomial و Bernoulli در پکیج و کتابخانه Scikit وجود دارد.
برای ساخت یک مدل طبقهبندی کننده یادگیری ماشینِ Naïve Bayes به موارد زیر نیاز داریم:
دیتاست
ما قصد داریم از دیتاستی به نام پایگاه داده تشخیص سرطان پستان ویسکانسین[1] استفاده کنیم. دیتاست شامل اطلاعات مختلفی در مورد تومورهای سرطان پستان و همچنین برچسبهای طبقهبندی بدخیم یا خوشخیم است. دیتاست دارای 569 نمونه یا داده در 569 تومور است و شامل اطلاعاتی در مورد 30 صفت یا ویژگی مانند شعاع تومور، بافت، صافی و ناحیه است. ما میتوانیم این دیتاست را از پکیج sklearn وارد (import) کنیم.
مدل Naïve Bayes
برای ساخت طبقهبندی کننده Naïve Bayes به یک مدل Naïve Bayes نیاز داریم. همانطور که قبلاً گفته شد، سه نوع مدل Naïve Bayes به نامهای Gaussian، Multinomial و Bernoulli در پکیج Scikit Learn وجود دارد. در اینجا در مثال زیر میخواهیم از مدل Gaussian Naïve Bayes استفاده کنیم.
ادامه مقاله را از لینکهای زیر بخوانید:
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت اول)
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت سوم)
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت چهارم)
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت پنجم)
هوش مصنوعی با پایتون – بخش پنجم – یادگیری نظارتشده : طبقهبندی (قسمت آخر)
[1] Wisconsin