day 15- k-means clustering

day 15-
k-means clustering

السلام عليكم ورحمة الله... معاكم Kaito :)


مرحبا بيكم فالنهار 15 ديال سلسلة 30 يوم من التعلم الآلي..


وصلنا للنصف ديال challenge


ماشاء الله اللهم بارك


دوزنا 15 يوم.. بقات 15 يوم وحدة اخرى


ان شاء الله تدوز ونساليو وحنا فاهمين هاد الأي أي


ملي شفنا اهم الخوازميات الخاضعة لاشراف supervised


اليوم غنشوفو unsupervised


وغنبداو بواحد الالغوريتم اللي كيبان صعيب


ولكن فالحقيقة راه بطاطا


اللي هو k-means clustering


brace-yourself-kmeans.jpg (600×549)


هو واحد النوع من خوارزميات التعلم الالي الغير خاضعة لاشراف

unsupervised machine learning algorithm


وهاد النوع هو اللي كنخدمو فاش كتكون الداتا ديالنا unlabeled


يعني مكنتدخلوش فالقرار او مكنعطيوش معلومات للمودل


وهنايا الهدف ديال k-means هو نلقاو مجموعات groups فالداتا


او كيتسماو "clusters" .. بالعربية "عناقيد"


(هي نيت منين جات k-means clustering)


هاد الالغوريتم كيحل المشاكل ديال تصنيف الداتا


من خلال عدد معين من clusters (داك العدد هو k)


فالاول ملي كنت كنعطي للمودل تصاور ديال المشاش والكلاب


كنت كنقول ليه راه هادو مشاش وكلاب


هنايا فهاد النوع ديال الخوارزميات … مكتقوليه والو


كتعطيه غير التصاور مخلطين


وكتقول ليه قاد ليا المجموعات او العناقيد اللي كيبانو ليك


1*fz-rjYPPRlGEMdTI-RLbDg.png (1080×457)


انفهمو دبا الكونصبت ديالها:


59_blog_image_3.png (866×428)


  1. أول حاجة قبل منقسمو الداتا الى مجموعات


    خصنا نختارو العدد ديال العناقيد clusters..


    اللي هو العدد k..


  1. كتختار عشوائيا واحد العدد k ديال النقط فالمعلم..


    هاد النقط كيتسماو centroids أو النقطة الوسطى للعنقود


    وماشي ضروري يكونو من نقط البيانات اللي عندك


    تقدر تكون اي نقطة باغي فداك المعلم الاختيار راه عشوائي


  2. من بعد كتشد دوك النقط كاملين اللي عندك فالداتا وكتصنفهوم مع أقرب centroid ليهم..


    (كتحسب المسافة بيناتهم واللي قريبة كتولي منهم)



  3. ملي كدير الخطوة الثالثة كيتكونو ليك مجموعات clusters


    دوك النقط centroids اللي ختاريتي فالاول كيمشيو


    وكتعاود تحسب وتختار النقطة الوسطى centroid ديال كل مجموعة cluster


  4. فاش كيبانو دوك النقاط الوسطى الجداد ،


    كنعاودو نطبقو الخطوة 3 و 4. بحيث كتقلب على أقرب مسافة لكل نقطة بيانات من النقاط الوسطى الجديدة وكتربطها مع k العناقيد الجديدة.


    كتبقا تعاود هاد العملية وكتحبس ملي النقط الوسطى مكيتبدلوش.



كيبان ليا بغيتي مثال ههه


غنعطيك اسيدي ا لالة المثال..


نفتارضو عندنا هاد الgraph


وبغينا نطبقو k-means باش نجمعو كل عينة ف cluster




اول خطوة قلنا خصنا نختارو عدد الclusters اللي هو k


باش نسهلو هاد المثال عليكم نختارو مثلا k=2


الخطوة الثانية هي نختارو عشوائيا k نقط اللي غيكونو centroids


ديجا عندنا k=2 اذن غناخدو 2 نقط عشوائيين من graph


كيما كتشوفو لونت كل وحدة بالحمر والاخضر باش نفرق كل مجموعة.



هنايا كتجي الخطوة الثالثة:


كل نقطة من نقط البيانات اللي عندنا كنصنفها مع اقرب centroid ليها


نورمالمون كنحسبو المسافة ما بين كل نقطة ودوك المربعات الملونين


ولكن غنخدمو بواحد الطريقة اللي أسهل وغتكون شفتيها ديجا فالثانوي


(الا ايلا كنتي كتنعس فالحصة ديال الماط)


غنرسمو خط مستقيم بين النقطتين المركزيتين centroids ،


وكنرسمو واحد الخط متعامد فمنتصف الخط المستقيم.



من هاد القسمة كيسهال علينا البلان..


أي نقطة كاينة فوق داك المستقيم راه قريبة للمربع الازرق


واي نقطة كاينة التحت راه قريبة للمربع الاحمر


صافي كنلونو النقط على حسب centroid ديالها بنفس اللون



فهاد المثال.. حسبنا المسافة بين النقط باستعمال المسافة الاقليدية


خدمنا بيها هنا غير حيت واضحة و ديجا شفناها فالايام اللي دازو


وماشي بوحدها اللي كاينة.. يقدر يكون ما احسن


وهادي هي الخدمة ديال عالم البيانات data scientist


باش يلقا أحسن method لكل حالة..


هنايا كتجي الخطوة الرابعة..


وهي انه كتقلب على النقط الوسطى الجداد لكل مجموعة cluster


اعتبر هاد النقط الوسطى centroids هما مركز الثقل ديال clusters ديالك


فالشيما ديالنا كيكحازو centroids ديالنا باش يجيو فالوسط ديال كل مجموعة



هنايا كتعاود الخطوات اللونين.. كل نقطة كتعطيها centroid ديالها


كتقسم وكتلقا بلي واحد النقطة حمرا دخلات دبا للمجال الازرق


وجوج زرقين دخلو للمجال الاحمر



اللي فالمنطقة الزرقا كيولي ازرق


اللي فالمنطقة الحمرا كيولي حمر


(اللي طاح فالمقلا يتقلا)


image


وكنبقاو نعاودو الخطوات


كنردو centroid فمركز ثقل المجموعة ديال النقط الجديدة



وكتعاود تقسم..




وكتبدل الالوان ديال النقط..

image


ونتا غادي بحال هكا كتعاود الخطوات..


imageimageimageimage

حتى كتوصل لهنا..


image


هنايا معندك متبدل


ملي كتقسم و كتلقا كل نقطة ديجا فبلاصتها


صافي كتكون ساليتي الخطوات ديالك وسالا الالغوريتم


فالاخر كيعطيك 2 ديال clusters


المودل ديالك راه واجد..


image


دبا السؤال اللي غيجي فبالكم


هو كيفاش غدي نعرف هاد العدد k اللي كنختار فالاول


كاينين طرق باش تختار أحسن k


غندوي على الطريقة المشهورة والساهلة


واللي هي "طريقة الكوع" elbow method


طريقة الكوع هي تقنية كتعاونا باش نلقاو العدد الأمثل للمجموعات في مجموعات K-means.


الفكرة هي انك كتخدم الالغوريتم ديالك شحال من مرة على قيم مختلفة من k


(مثلا كتدير k من 1 إلى 10)،


ولكل قيمة k كيعطيك الالغوريتم واحد القيمة ديال الخطأ.


كتسمى مجموع الأخطاء المربعة (SSE).


هاد القيمة كتعاونك باش تعرف الاداء ديال الالغوريتم


وباش تحسن من داك الاداء خص تنقص من نسبة الخطأ


K Means Clustering | Method to get most optimal K value


"الكوع" هو ديك النقطة التي تمثل k الأفضل والامثل.


هاد النقطة هي فين كيبدا المؤشر SSE فالتسطيح


وكيشكل واحد شكل كيشبه للمرفق.


صافي كنختاروها باش تولي k ديالنا (k=3)



هادا بكل بساطة هو k-means clustering


K-means be like: Mine ! MINE ! MINE ! : r/datascience


هاد الحساب وهاد الرياضيات اللي شفتي هنايا كامل


راه ماشي نتا لي كديرو


فالكود كتعيط على method سميتها KMeans


كتعطيها الداتا والعدد k


صافي.. هدا هو جهدك والباقي عليها..


ايلا كنتي ديجا كتكودي وباغي تطبق هاد الالغوريتم فداتاسيت بصح


(متخافش مافيه لا ماط لا والو..)


تبع مع هاد المقال فيه خطوات بالكود كوبيهم وخدمهم وراك ناضي


هذي خلاصة اليوم..

CDN media


نتلاقاو فايمايل اخر غدا!


كنتمنى تكونو استافدتو.. ايلا عندكم شي تساؤل اولا مشرحتش شي حاجة مزيان، غير صيفط ليا رد فهاد المايل نيت..



— Kaito



ملاحظات:


rest-9a9e6b30329429d1385775297f1ac9d1-a5esznpy.jpg (1200×600)


السلام عليكم ورحمة الله... معاكم Kaito :)


مرحبا بيكم فالنهار 15 ديال سلسلة 30 يوم من التعلم الآلي..


وصلنا للنصف ديال challenge


ماشاء الله اللهم بارك


دوزنا 15 يوم.. بقات 15 يوم وحدة اخرى


ان شاء الله تدوز ونساليو وحنا فاهمين هاد الأي أي


ملي شفنا اهم الخوازميات الخاضعة لاشراف supervised


اليوم غنشوفو unsupervised


وغنبداو بواحد الالغوريتم اللي كيبان صعيب


ولكن فالحقيقة راه بطاطا


اللي هو k-means clustering


brace-yourself-kmeans.jpg (600×549)


هو واحد النوع من خوارزميات التعلم الالي الغير خاضعة لاشراف

unsupervised machine learning algorithm


وهاد النوع هو اللي كنخدمو فاش كتكون الداتا ديالنا unlabeled


يعني مكنتدخلوش فالقرار او مكنعطيوش معلومات للمودل


وهنايا الهدف ديال k-means هو نلقاو مجموعات groups فالداتا


او كيتسماو "clusters" .. بالعربية "عناقيد"


(هي نيت منين جات k-means clustering)


هاد الالغوريتم كيحل المشاكل ديال تصنيف الداتا


من خلال عدد معين من clusters (داك العدد هو k)


فالاول ملي كنت كنعطي للمودل تصاور ديال المشاش والكلاب


كنت كنقول ليه راه هادو مشاش وكلاب


هنايا فهاد النوع ديال الخوارزميات … مكتقوليه والو


كتعطيه غير التصاور مخلطين


وكتقول ليه قاد ليا المجموعات او العناقيد اللي كيبانو ليك


1*fz-rjYPPRlGEMdTI-RLbDg.png (1080×457)


انفهمو دبا الكونصبت ديالها:


59_blog_image_3.png (866×428)


  1. أول حاجة قبل منقسمو الداتا الى مجموعات


    خصنا نختارو العدد ديال العناقيد clusters..


    اللي هو العدد k..


  1. كتختار عشوائيا واحد العدد k ديال النقط فالمعلم..


    هاد النقط كيتسماو centroids أو النقطة الوسطى للعنقود


    وماشي ضروري يكونو من نقط البيانات اللي عندك


    تقدر تكون اي نقطة باغي فداك المعلم الاختيار راه عشوائي


  2. من بعد كتشد دوك النقط كاملين اللي عندك فالداتا وكتصنفهوم مع أقرب centroid ليهم..


    (كتحسب المسافة بيناتهم واللي قريبة كتولي منهم)



  3. ملي كدير الخطوة الثالثة كيتكونو ليك مجموعات clusters


    دوك النقط centroids اللي ختاريتي فالاول كيمشيو


    وكتعاود تحسب وتختار النقطة الوسطى centroid ديال كل مجموعة cluster


  4. فاش كيبانو دوك النقاط الوسطى الجداد ،


    كنعاودو نطبقو الخطوة 3 و 4. بحيث كتقلب على أقرب مسافة لكل نقطة بيانات من النقاط الوسطى الجديدة وكتربطها مع k العناقيد الجديدة.


    كتبقا تعاود هاد العملية وكتحبس ملي النقط الوسطى مكيتبدلوش.



كيبان ليا بغيتي مثال ههه


غنعطيك اسيدي ا لالة المثال..


نفتارضو عندنا هاد الgraph


وبغينا نطبقو k-means باش نجمعو كل عينة ف cluster




اول خطوة قلنا خصنا نختارو عدد الclusters اللي هو k


باش نسهلو هاد المثال عليكم نختارو مثلا k=2


الخطوة الثانية هي نختارو عشوائيا k نقط اللي غيكونو centroids


ديجا عندنا k=2 اذن غناخدو 2 نقط عشوائيين من graph


كيما كتشوفو لونت كل وحدة بالحمر والاخضر باش نفرق كل مجموعة.



هنايا كتجي الخطوة الثالثة:


كل نقطة من نقط البيانات اللي عندنا كنصنفها مع اقرب centroid ليها


نورمالمون كنحسبو المسافة ما بين كل نقطة ودوك المربعات الملونين


ولكن غنخدمو بواحد الطريقة اللي أسهل وغتكون شفتيها ديجا فالثانوي


(الا ايلا كنتي كتنعس فالحصة ديال الماط)


غنرسمو خط مستقيم بين النقطتين المركزيتين centroids ،


وكنرسمو واحد الخط متعامد فمنتصف الخط المستقيم.



من هاد القسمة كيسهال علينا البلان..


أي نقطة كاينة فوق داك المستقيم راه قريبة للمربع الازرق


واي نقطة كاينة التحت راه قريبة للمربع الاحمر


صافي كنلونو النقط على حسب centroid ديالها بنفس اللون



فهاد المثال.. حسبنا المسافة بين النقط باستعمال المسافة الاقليدية


خدمنا بيها هنا غير حيت واضحة و ديجا شفناها فالايام اللي دازو


وماشي بوحدها اللي كاينة.. يقدر يكون ما احسن


وهادي هي الخدمة ديال عالم البيانات data scientist


باش يلقا أحسن method لكل حالة..


هنايا كتجي الخطوة الرابعة..


وهي انه كتقلب على النقط الوسطى الجداد لكل مجموعة cluster


اعتبر هاد النقط الوسطى centroids هما مركز الثقل ديال clusters ديالك


فالشيما ديالنا كيكحازو centroids ديالنا باش يجيو فالوسط ديال كل مجموعة



هنايا كتعاود الخطوات اللونين.. كل نقطة كتعطيها centroid ديالها


كتقسم وكتلقا بلي واحد النقطة حمرا دخلات دبا للمجال الازرق


وجوج زرقين دخلو للمجال الاحمر



اللي فالمنطقة الزرقا كيولي ازرق


اللي فالمنطقة الحمرا كيولي حمر


(اللي طاح فالمقلا يتقلا)


image


وكنبقاو نعاودو الخطوات


كنردو centroid فمركز ثقل المجموعة ديال النقط الجديدة



وكتعاود تقسم..




وكتبدل الالوان ديال النقط..

image


ونتا غادي بحال هكا كتعاود الخطوات..


imageimageimageimage

حتى كتوصل لهنا..


image


هنايا معندك متبدل


ملي كتقسم و كتلقا كل نقطة ديجا فبلاصتها


صافي كتكون ساليتي الخطوات ديالك وسالا الالغوريتم


فالاخر كيعطيك 2 ديال clusters


المودل ديالك راه واجد..


image


دبا السؤال اللي غيجي فبالكم


هو كيفاش غدي نعرف هاد العدد k اللي كنختار فالاول


كاينين طرق باش تختار أحسن k


غندوي على الطريقة المشهورة والساهلة


واللي هي "طريقة الكوع" elbow method


طريقة الكوع هي تقنية كتعاونا باش نلقاو العدد الأمثل للمجموعات في مجموعات K-means.


الفكرة هي انك كتخدم الالغوريتم ديالك شحال من مرة على قيم مختلفة من k


(مثلا كتدير k من 1 إلى 10)،


ولكل قيمة k كيعطيك الالغوريتم واحد القيمة ديال الخطأ.


كتسمى مجموع الأخطاء المربعة (SSE).


هاد القيمة كتعاونك باش تعرف الاداء ديال الالغوريتم


وباش تحسن من داك الاداء خص تنقص من نسبة الخطأ


K Means Clustering | Method to get most optimal K value


"الكوع" هو ديك النقطة التي تمثل k الأفضل والامثل.


هاد النقطة هي فين كيبدا المؤشر SSE فالتسطيح


وكيشكل واحد شكل كيشبه للمرفق.


صافي كنختاروها باش تولي k ديالنا (k=3)



هادا بكل بساطة هو k-means clustering


K-means be like: Mine ! MINE ! MINE ! : r/datascience


هاد الحساب وهاد الرياضيات اللي شفتي هنايا كامل


راه ماشي نتا لي كديرو


فالكود كتعيط على method سميتها KMeans


كتعطيها الداتا والعدد k


صافي.. هدا هو جهدك والباقي عليها..


ايلا كنتي ديجا كتكودي وباغي تطبق هاد الالغوريتم فداتاسيت بصح


(متخافش مافيه لا ماط لا والو..)


تبع مع هاد المقال فيه خطوات بالكود كوبيهم وخدمهم وراك ناضي


هذي خلاصة اليوم..

CDN media


نتلاقاو فايمايل اخر غدا!


كنتمنى تكونو استافدتو.. ايلا عندكم شي تساؤل اولا مشرحتش شي حاجة مزيان، غير صيفط ليا رد فهاد المايل نيت..



— Kaito



ملاحظات:


rest-9a9e6b30329429d1385775297f1ac9d1-a5esznpy.jpg (1200×600)


التالي