مهمترین الگوریتمهای یادگیری ماشین (به همراه کدهای پایتون و R) – بخش هفتم: KNN


این روش هم میتواند برای مسائل کلاسبندی استفاده شود و هم رگرسیون. با این حال در عمل بیشتر در مسائل کلاسبندی استفاده میشود. الگوریتم k همسایهی نزدیکتر یک الگوریتم ساده است که همه موارد موجود را ذخیره میکند و کلاسهای جدید را بر اساس رأی اکثریت k همسایهاش کلاسبندی میکند. انتساب یک کلاس به رایجترین کلاس در میان k همسایهاش بر اساس تابع فاصله انجام مییابد.
تابع فاصله میتواند از نوع اقلیدسی، منهتن، مینکوفسکی و یا هَمینگ باشد. سه تابع نخست برای توابع پیوسته و تابع چهارم (همینگ) برای متغیرهای دستهای استفاده میشود. اگر k=1 باشد، در این صورت انتساب بهسادگی بر اساس نزدیکترین همسایه صورت میگیرد. گاهی اوقات ممکن است انتخاب k در زمان مدلسازی KNN یک چالش باشد.
الگوریتم KNN را بهآسانی میتوان به مسائل زندگی روزمره نگاشت کرد. اگر بخواهید در مورد یک فرد که اطلاعاتی در موردش ندارید چیزهایی بدانید، احتمالاً ابتدا نزدیکترین دوستان و محیطی که در آن زندگی میکند را مییابید و بدین ترتیب در مورد وی اطلاعاتی کسب میکنید.
چیزهایی که پیش از انتخاب KNN باید بدانیم:
- الگوریتم KNN از نظر محاسباتی پرهزینه است.
- متغیرها باید نرمالسازی شوند، در غیر این صورت متغیرهای پرت ممکن است آن را منحرف کنند.
- پیش از استفاده از KNN باید پردازشهای مقدماتی مانند طرحبندی و حذف نویز صورت گیرد.
کد پایتون
#Import Library
from sklearn.neighbors import KNeighborsClassifier
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create KNeighbors classifier object model
KNeighborsClassifier(n_neighbors=6) # default value for n_neighbors is 5
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
کد R
library(knn)
x <- cbind(x_train,y_train)
# Fitting model
fit <-knn(y_train ~., data = x,k=5)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
در بخش بعدی این سلسله مطالب شما را با الگوریتم k-میانگین آشنا میکنیم.
سلام
مطلب جاداره کامل تر بشه….