الگوریتم KNN در پایتون

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

بهتر است قبل خواندن این مقاله با مفاهیم زیر آشنا باشید  :

پیاده سازی الگوریتم Knn با پایتون

در این بخش خواهیم دید که چگونه می توان از کتابخانه Scikit-Learn Python برای پیاده سازی الگوریتم KNN در کمتر از ۲۰ خط کد استفاده کرد. چگونگی اضافه کردن کتابخانه های موردنیاز را در این قسمت به شما با جزییات خواهیم گفت .

پیش نیازها : قبل از شروع نرم افزار Anoconda ، دیتاست mobile price را دانلود کنید.
NumPy  یک کتابخانه مربوط به آرایه ها در زبان برنامه نویسی پایتون می باشد. Pandas کتابخانه ای برای تحلیل ، پیش‌پردازش و بصری‌سازی داده‌هاست. کتابخانه ی matplotlib هم برای رسم نمودار و کتابخانه Seaborn برای مصورسازی داده در پایتون مورد استفاده قرار می‌گیرد.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
matplotlib inline%

با استفاده از کد زیر شما می توانید دیتاست مد‌نظر خود را به برنامه اضافه کنید:

(“dataset_mobilePrice=pd.read_csv(“C:/Users/ComTech/Downloads/Compressed/train.csv

تابع ()Head به ما امکان مشاهده‌ی نمونه‌های اول داده‌های‌مان را می‌دهد.

()dataset_mobilePrice.head

خروجی :

الگوریتم KNN در پایتونبا استفاده از تابع columns می‌توانید ستون‌های دیتاست را مشاهده کنید:

dataset_mobilePrice.columns

خروجی :

الگوریتم KNN در پایتونبرای دریافت خلاصه‌ای از اطلاعات آماری از قبیل میانگین،مینیمم، ماکسیمم و.. از تابع describe استفاده می‌کنیم:

()dataset_mobilePrice.describe

خروجی :

الگوریتم KNN در پایتونتابع ()info خلاصه کاملی از اطلاعات دیتاست و نوع داده‌هایی که در دیتاست وجود دارد به ما می‌دهد.

()dataset_mobilePrice.info

خروجی :

تابع Pairplot که در کد زیر استفاده شده است برای رسم یک نمودار مشترک برای کلیه ی ترکیبات ممکن ستون های عددی و بولی (Boolean) در دیتاست مورد استفاده قرار میگیرد.

()dataset_mobilePrice.head

خروجی :

الگوریتم KNN در پایتون

X در این مرحله شامل ستون ویژگی ها بوده درحالی که y شامل ستون برچسب ها می شود.از تابع drop () برای حذف برچسب های مشخص شده از سطرها یا ستون ها استفاده می شود. پارامتر ابتدایی نام برچسب و پارامتر دوم (axis) اگر دارای مقدار یک بود از ستون و اگر دارای مقدار صفر بود از سطر حذف می‌شود.

(X=dataset_mobilePrice.drop(‘price_range’,axis=1
[‘y=dataset_mobilePrice[‘price_range

ایجاد و آموزش مدل KNN

برای جلوگیری از over-fitting ، ما مجموعه داده خود را به دودسته‌ی داده‌های آموزشی و آزمایشی تقسیم می کنیم ، که به ما ایده بهتری درباره نحوه عملکرد الگوریتم  در مرحله آزمایش بدهد. به این ترتیب الگوریتم ما روی داده های دیده نشده آزمایش می شود .

برای تکه کردن و تقسیم کردن داده‌های مان از کتابخانه‌ی sklearn به صورت زیر استفاده می‌کنیم.خروجی تابع train_test_split به‌صورت چهار پارامتر Tuple به هرکدام از متغیرهای ما به ترتیب اختصاص داده ‌می‌شود. test_size درصد داده‌های تست ما را از داده‌های آموزشی تعیین می‌کند.

from sklearn.model_selection import train_test_split
(X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=101

پس از آن با اتفاده از کتابخانه‌ی sklearn  و تابع KNeighborsClassifier آن را با Knn مدل سازی می‌کنیم :

from sklearn.neighbors import KNeighborsClassifier
(knn = KNeighborsClassifier(n_neighbors=10
(knn.fit(X_train,y_train

خروجی :

الگوریتم KNN در پایتونمحاسبه‌ی خطای مدل با تابع score :

(knn.score(X_test,y_test

خروجی :

الگوریتم KNN در پایتون

یافتن K بهینه

error_rate = []
(for i in range(1,20
(knn = KNeighborsClassifier(n_neighbors=i
(knn.fit(X_train,y_train
(pred_i = knn.predict(X_test
(error_rate.append(np.mean(pred_i != y_test

بدست آوردن نتیجه نهایی

from sklearn.metrics import classification_report,confusion_matrix
(pred = knn.predict(X_test
(print(classification_report(y_test,pred

 

خروجی :

الگوریتم KNN در پایتون

برای دانلود رایگان این کد بروی لینک زیر کلیک کنید

رایگان – خرید
قبلی «
بعدی »

۱ دیدگاه

  1. خدا خیرتون بده خیلی مختصر و مفید توضیح دادین هرچی سرچ می کردم نمی فهمیدم ….عاقبت بخیر بشید
    علی علی

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

نشانی ایمیل شما منتشر نخواهد شد.

مطالب اخیر