مقدمة حول خوارزمية K-nearest neighbors
تعتبر خوارزمية K-nearest neighbors (KNN) واحدة من أبسط خوارزميات التعلم الآلي التي تستخدم لتصنيف البيانات أو تقدير القيم. تعتمد هذه الخوارزمية على الفكرة البسيطة المتمثلة في أن العناصر المتشابهة تكون قريبة من بعضها البعض في الفضاء الميتركي. عند إعطاء بيانات جديدة، تقوم KNN بالبحث عن K نقاط بيانات الأقرب في مجموعة التدريب وتستخدم خصائصها لتحديد الفئة أو القيمة المتوقعة للبيانات الجديدة. يتم تحديد القرب عادة باستخدام مقاييس المسافة مثل المسافة الإقليدية.
تطبيق K-nearest neighbors باستخدام Python
لتطبيق خوارزمية KNN في بايثون، عادةً ما يتم استخدام مكتبات مثل Scikit-learn التي توفر أدوات جاهزة لتسهيل هذه العملية. لنبدأ بشرح كود بسيط لتوضيح كيفية استخدام KNN في تصنيف البيانات. سنستخدم مجموعة بيانات شهيرة تُعرف باسم “Iris” والتي تتضمن معلومات حول أنواع مختلفة من الأزهار.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# تحميل البيانات
iris = load_iris()
X = iris.data
y = iris.target
# تقسيم البيانات إلى مجموعة تدريب واختبار
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# توحيد البيانات
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# إعداد نموذج KNN
knn = KNeighborsClassifier(n_neighbors=3)
# تدريب النموذج
knn.fit(X_train, y_train)
# التنبؤ بالفئات
y_pred = knn.predict(X_test)
# تقييم دقة النموذج
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
في هذا المثال، نبدأ بتحميل مجموعة بيانات Iris وتقسيمها إلى مجموعات للتدريب والاختبار. نقوم بتوحيد البيانات باستخدام `StandardScaler` لتحسين أداء النموذج. بعد ذلك، نقوم بإعداد نموذج KNN باستخدام `KNeighborsClassifier` مع تحديد عدد الجيران K إلى 3. أخيرًا، نقوم بتدريب النموذج وتقييم دقته باستخدام `accuracy_score`.
أمثلة عملية أخرى على استخدام K-nearest neighbors
يمكن استخدام خوارزمية KNN في مجموعة متنوعة من التطبيقات العملية مثل التعرف على الأنماط، التوصيات، وحتى الكشف عن الاحتيال. على سبيل المثال، في نظام توصية، يمكن استخدام KNN لتحديد عناصر مشابهة لمفضلات المستخدم وتقديم توصيات بناءً على ذلك. في الكشف عن الاحتيال، يمكن استخدام KNN للكشف عن الأنشطة غير العادية من خلال مقارنة السجلات الجديدة مع السجلات السابقة. بفضل بساطتها وفعاليتها، تظل خوارزمية KNN خيارًا شائعًا للعديد من التطبيقات العملية.
