Menu
CoddyTech
flag Ar iconالعربيةdown icon

الدالة fit

الدرس 10 من 19 في دورة مقدمة في تعلم الآلة على Coddy.

 

المصدر: ويكيبيديا

challenge icon

التحدي

صعب

قم بتنفيذ التابع fit والتابع find_cluster_centroid. يقوم التابع find_cluster_centroid بإيجاد المركز (centroid) لقائمة معينة من النقاط (عنقود/cluster). تعليمات كيفية إيجاد المركز موجودة في الدرس السابق. لتنفيذ التابع fit، اتبع التعليمات التالية:

  1. تهيئة المراكز (Centroids): أولاً، اختر k من النقاط كمراكز أولية من مجموعة البيانات. لاجتياز حالات الاختبار، اختر النقاط الثالثة، الخامسة، السابعة، التاسعة، ... كمراكز أولية (اعتماداً على عدد النقاط k)
  2. تخصيص العناقيد: لكل نقطة في مجموعة البيانات، ابحث عن أقرب مركز (باستخدام مقاييس المسافة مثل المسافة الإقليدية/Euclidean distance) وقم بتخصيص النقطة لهذا العنقود.
  3. تحديث المراكز: بمجرد تخصيص جميع النقاط للعناقيد، أعد حساب المراكز عن طريق أخذ المتوسط لجميع النقاط في كل عنقود.
  4. تكرار الخطوتين 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 عبر الإنترنت