الگوریتم نایو بیز (Naive Bayes) با پایتون — راهنمای کاربردی

«نایو بیز» ‌(Naive Bayes)، یک روش «دسته‌بندی» (Classification) بر پایه «قضیه بیز» (Bayes’ Theorem) است. این روش فرض می‌کند که بین «پیش‌بین‌ها» (Predictors) استقلال وجود دارد. در واقع، یک دسته‌بندی نایو بیز فرض می‌کند که یک ویژگی در یک کلاس، نامرتبط به دیگر موارد است. به عنوان مثال، یک میوه را می‌توان در نظر گرفت. این میوه اگر گرد، قرمز و دارای شش سانتی‌متر قطر باشد سیب است. یک «دسته‌بند» (Classifier) نایو بیز چنین در نظر می‌گیرد که این مشخصه‌ها به طور مستقل در احتمال سیب بودن میوه مشارکت دارند. این مساله حتی در صورت وابسته بودن ویژگی‌ها به یکدیگر نیز صادق است.

برای هر مجموعه داده بزرگی، ساخت یک مدل نایو بیز آسان است. نه تنها این مدل بسیار ساده است، بلکه بهتر از بسیاری از روش‌های پیچیده دسته‌بندی کار می‌کند. در ادامه، کد پیاده‌سازی این روش با «زبان برنامه‌نویسی پایتون» (Python Programming Language) ارائه شده است.

قطعه کد ۱:

>>> from sklearn.naive_bayes import GaussianNB
>>> from sklearn.naive_bayes import MultinomialNB
>>> from sklearn import datasets
>>> from sklearn.metrics import confusion_matrix
>>> from sklearn.model_selection import train_test_split
>>> iris=datasets.load_iris()
>>> x=iris.data
>>> y=iris.target
>>> x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=0)
>>> gnb=GaussianNB()
>>> mnb=MultinomialNB()
>>> y_pred_gnb=gnb.fit(x_train,y_train).predict(x_test)
>>> cnf_matrix_gnb = confusion_matrix(y_test, y_pred_gnb)
>>> cnf_matrix_gnb

خروجی:

array([[16, 0, 0],
[ ۰, ۱۸, ۰],
[ ۰, ۰, ۱۱]], dtype=int64)

ورودی:

>>> y_pred_mnb = mnb.fit(x_train, y_train).predict(x_test)
>>> cnf_matrix_mnb = confusion_matrix(y_test, y_pred_mnb)
>>> cnf_matrix_mnb

خروجی:

array([[16, 0, 0],
[ ۰, ۰, ۱۸],
[ ۰, ۰, ۱۱]], dtype=int64)

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

۲ نظر در "الگوریتم نایو بیز (Naive Bayes) با پایتون — راهنمای کاربردی"
    1. با سلام و احترام؛

      صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاس‌گزاریم.

      برای شما آرزوی سلامتی و موفقیت داریم.

پاسخی بگذارید

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