الدالة fit
الدرس 10 من 19 في دورة مقدمة في تعلم الآلة على Coddy.
التحدي
صعبقم بتنفيذ التابع fit والتابع find_cluster_centroid. يقوم التابع find_cluster_centroid بإيجاد المركز (centroid) لقائمة معينة من النقاط (عنقود/cluster). تعليمات كيفية إيجاد المركز موجودة في الدرس السابق. لتنفيذ التابع fit، اتبع التعليمات التالية:
- تهيئة المراكز (Centroids): أولاً، اختر
kمن النقاط كمراكز أولية من مجموعة البيانات. لاجتياز حالات الاختبار، اختر النقاط الثالثة، الخامسة، السابعة، التاسعة، ... كمراكز أولية (اعتماداً على عدد النقاطk) - تخصيص العناقيد: لكل نقطة في مجموعة البيانات، ابحث عن أقرب مركز (باستخدام مقاييس المسافة مثل المسافة الإقليدية/Euclidean distance) وقم بتخصيص النقطة لهذا العنقود.
- تحديث المراكز: بمجرد تخصيص جميع النقاط للعناقيد، أعد حساب المراكز عن طريق أخذ المتوسط لجميع النقاط في كل عنقود.
- تكرار الخطوتين 2 و 3: يتم تكرار الخطوات المذكورة أعلاه حتى لا تتغير المراكز بشكل ملحوظ. إذا كانت المسافة بين المركز الجديد والمركز السابق أقل من
0.01، فتوقف.
كيفية اجتياز حالات الاختبار:
- احفظ المراكز في المتغير
self.centroids. - بمجرد أن تجد مراكز جديدة وتكون المسافة الإجمالية بين المراكز الجديدة والسابقة أقل من
0.01، احتفظ بالمراكز السابقة. - ترتيب المراكز مهم. قم دائماً بالمرور على المراكز من البداية إلى النهاية.
- ستقوم حالات الاختبار بطباعة
self.centroidsوالتحقق مما إذا كانت صحيحة.
جرّب بنفسك
def euclidian_distance(point_a, point_b):
return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5
class KMeans:
def __init__(self, k):
self.k = k
def find_cluster_centroid(self, cluster_points):
# اكتب كودك هنا
def fit(self, X_train):
# اكتب كودك هنا
self.centroids = ...
def predict(self, X_test):
passجميع دروس مقدمة في تعلم الآلة
تدرّب بنفسك: مترجم Python عبر الإنترنت
