25/07/2026
هل يمكن أن يكون المتوسط هو السبب في فشل عملية التجميع؟
تخيل أنك تريد تقسيم مجموعة من العملاء إلى مجموعات متشابهة.
جميع العملاء متقاربون في سلوكهم...
باستثناء عدد قليل يمتلك قيماً مرتفعة جداً أو منخفضة جداً.
إذا استخدمت المتوسط لتمثيل كل مجموعة...
فسوف ينجذب هذا المتوسط نحو تلك القيم الشاذة، وقد لا يعود معبراً عن أغلب عناصر المجموعة.
لهذا السبب ظهر نموذج K-Medoids.
يعتمد K-Medoids على فكرة مختلفة قليلاً عن K-Means.
بدلاً من حساب متوسط المجموعة، يختار نقطة حقيقية من البيانات نفسها لتكون ممثل المجموعة.
وتسمى هذه النقطة Medoid.
وجود مركز المجموعة كعنصر حقيقي من البيانات يجعل النموذج أكثر استقراراً عند وجود الضوضاء والقيم الشاذة.
لكن كيف يحدد النموذج أفضل Medoid؟
رياضياً يحاول K-Medoids تقليل مجموع المسافات بين جميع نقاط المجموعة والمركز الحقيقي لها.
وتكتب دالة الهدف بالشكل:
J = Σ Σ d(xᵢ , mⱼ)
حيث:
J
هي دالة الهدف التي نحاول تصغيرها.
xᵢ
تمثل نقطة البيانات رقم i.
mⱼ
تمثل الـ Medoid الخاص بالمجموعة رقم j.
Cⱼ
تمثل عناصر المجموعة j.
d(xᵢ,mⱼ)
تمثل المسافة بين نقطة البيانات والـ Medoid، وغالباً ما تكون المسافة الإقليدية (Euclidean Distance).
كلما انخفضت قيمة J...
أصبحت النقاط أقرب إلى مراكز مجموعاتها، وبالتالي أصبح التجميع أفضل.
تبدأ الخوارزمية باختيار K نقاط عشوائية لتكون Medoids.
بعد ذلك يتم إسناد كل نقطة إلى أقرب Medoid.
ثم تحاول الخوارزمية استبدال أحد الـ Medoids بنقطة أخرى من البيانات.
إذا أدى هذا الاستبدال إلى تقليل قيمة J، يتم اعتماد المركز الجديد.
وتستمر العملية حتى لا يصبح بالإمكان تقليل قيمة الدالة أكثر.
لهذا السبب يتميز K-Medoids بأنه أكثر مقاومة للقيم الشاذة مقارنةً بـ K-Means، لأن مراكز المجموعات ليست متوسطات حسابية، بل سجلات حقيقية موجودة داخل البيانات.
يستخدم K-Medoids في:
• تقسيم العملاء.
• تحليل البيانات الطبية.
• اكتشاف الأنماط في البيانات المالية.
• البيانات التي تحتوي على ضوضاء أو Outliers.
قد يكون K-Medoids أبطأ من K-Means...
لكنه غالباً يقدم نتائج أكثر استقراراً عندما تكون جودة البيانات غير مثالية.
#التجميع
25/07/2026
كيف يمكن لخوارزمية أن تكتشف الأنماط دون أن تعرف الإجابة مسبقًا؟
تخيل أن لديك آلاف العملاء...
ولا تعرف من منهم ينتمي إلى الفئة نفسها.
لا توجد تسميات (Labels)، ولا فئات محددة، ولا إجابات صحيحة يمكن تدريب النموذج عليها.
فهل يمكن للحاسوب أن يكتشف المجموعات بنفسه؟
الإجابة هي: نعم.
وهنا يأتي دور K-Means Clustering، أحد أشهر نماذج التعلم غير الموجه (Unsupervised Learning).
تعتمد K-Means على فكرة بسيطة لكنها فعالة:
بدلًا من محاولة التنبؤ بقيمة أو تصنيف عنصر معين، تقوم بتقسيم البيانات إلى مجموعات (Clusters) بحيث تكون العناصر داخل كل مجموعة متشابهة قدر الإمكان، بينما تكون مختلفة عن العناصر الموجودة في المجموعات الأخرى.
تبدأ الخوارزمية باختيار عدد المجموعات K، ثم تحدد مركزًا لكل مجموعة (Centroid)، وبعدها تعيد توزيع النقاط على أقرب مركز، ثم تعيد حساب مراكز المجموعات مرة أخرى.
تتكرر هذه العملية حتى تستقر المراكز، ولا تعود المجموعات تتغير بشكل ملحوظ.
ولهذا السبب تُعد K-Means من أسرع وأكثر خوارزميات التجميع استخدامًا في تحليل البيانات.
تستخدم K-Means في العديد من التطبيقات الواقعية، مثل:
تقسيم العملاء إلى شرائح تسويقية.
تحليل سلوك المستخدمين.
اكتشاف الأنماط المخفية في البيانات.
ضغط الصور.
تنظيم البيانات قبل بناء نماذج أخرى.
ورغم بساطتها، فإن أداءها يعتمد بشكل كبير على طبيعة البيانات وعدد المجموعات المختار، لذلك تُعد نقطة البداية المثالية لفهم عالم Clustering.
#التجميع
24/07/2026
هل يمكن لنفس خوارزمية SVM أن تعطي نتائج ممتازة... ونتائج سيئة جدًا؟
الإجابة نعم.
والسبب في كثير من الأحيان...
ليس الخوارزمية نفسها...
بل طريقة ضبط إعداداتها.
وهنا يأتي مفهوم مهم في تعلم الآلة:
Hyperparameter Tuning.
تخيل أنك تمتلك سيارة رياضية عالية الأداء.
امتلاك السيارة وحده لا يكفي.
إذا كانت الإطارات غير مناسبة...
أو ضغط الهواء غير صحيح...
أو نظام التعليق غير مضبوط...
فلن تحصل على الأداء الذي صُممت السيارة من أجله.
الأمر نفسه يحدث مع نماذج تعلم الآلة.
فالخوارزمية قد تكون ممتازة...
لكن اختيار إعدادات غير مناسبة...
قد يجعلها تفشل في فهم البيانات.
في SVM...
هناك مجموعة من المعلمات التي لا يتعلمها النموذج بنفسه.
بل يجب على الباحث أو مهندس تعلم الآلة اختيارها قبل بدء التدريب.
ولهذا تسمى:
Hyperparameters.
ومن أهمها:
C
γ (Gamma)
Degree
ε
واختيار نوع الـ Kernel.
لكن ماذا يفعل كل واحد منها؟
لنبدأ بـ:
C
يمكن اعتباره مستوى "التسامح" مع الأخطاء.
إذا كانت قيمة C كبيرة...
سيحاول النموذج تصحيح كل خطأ تقريبًا.
فينتج حد قرار معقد...
وقد يحفظ بيانات التدريب بدلًا من تعلم الأنماط الحقيقية.
أما إذا كانت قيمة C صغيرة...
فسيصبح النموذج أكثر مرونة...
ويسمح ببعض الأخطاء...
مقابل قدرة أفضل على التعميم.
بعد ذلك يأتي:
γ (Gamma)
وهو المسؤول عن مدى تأثير كل نقطة تدريب.
إذا كانت γ صغيرة...
فسينظر النموذج إلى الصورة العامة.
أما إذا كانت كبيرة...
فسيركز على التفاصيل الدقيقة جدًا.
وهنا قد يقع في مشكلة:
Overfitting.
أما:
Degree
فيستخدم مع Polynomial Kernel.
وهو الذي يحدد درجة كثير الحدود.
كلما زادت قيمته...
أصبحت حدود القرار أكثر تعقيدًا.
أما:
ε
فيستخدم مع Support Vector Regression.
وهو يحدد مقدار الخطأ الذي يسمح للنموذج بتجاهله.
لكن...
كيف نعرف القيم المناسبة لكل هذه المعلمات؟
هل توجد قيم سحرية؟
الإجابة...
لا.
أفضل القيم تختلف من مجموعة بيانات إلى أخرى.
ولهذا نستخدم أساليب مثل:
Grid Search
و
Random Search
وأحيانًا:
Bayesian Optimization.
تقوم هذه الأساليب بتجربة عدد كبير من الاحتمالات...
ثم تختار الإعدادات التي تحقق أفضل أداء.
لكن...
كيف نعرف أن أداء النموذج جيد بالفعل؟
لا نعتمد على بيانات التدريب فقط.
بل نستخدم:
Cross Validation.
حيث يتم اختبار النموذج عدة مرات على أجزاء مختلفة من البيانات...
للتأكد من أنه يستطيع التعميم...
وليس مجرد حفظ الأمثلة التي تدرب عليها.
وفي النهاية...
ضبط Hyperparameters ليس خطوة اختيارية...
بل هو جزء أساسي من بناء أي نموذج احترافي.
فقد تمتلك أفضل خوارزمية...
لكن بإعدادات غير مناسبة...
ستحصل على نتائج متواضعة.
وفي المقابل...
قد تحقق نتائج مبهرة...
بمجرد اختيار القيم الصحيحة.
وفي عالم تعلم الآلة...
الفارق بين نموذج عادي...
ونموذج احترافي...
غالبًا لا يكون في الخوارزمية نفسها...
بل في جودة ضبط إعداداتها.
#بايثون
#خوارزميات
24/07/2026
هل يجب أن يمر نموذج الانحدار بكل نقطة في البيانات؟
يبدو الأمر منطقيًا...
كلما اقترب النموذج من جميع النقاط...
كانت نتائجه أفضل.
لكن الحقيقة...
ليست بهذه البساطة.
تخيل أنك تريد بناء نموذج يتنبأ بأسعار المنازل.
لديك مئات السجلات...
لكن بعض المنازل بيعت بأسعار مرتفعة جدًا أو منخفضة جدًا بسبب ظروف استثنائية.
إذا حاول النموذج المرور بجميع هذه النقاط...
فسينتهي به الأمر إلى تعلم الضوضاء بدلًا من تعلم النمط الحقيقي.
وهنا يأتي دور:
Support Vector Regression (SVR).
على الرغم من أن اسمه يحتوي على كلمة "Regression"...
إلا أنه مبني على نفس الفكرة التي جعلت SVM من أقوى خوارزميات التصنيف.
لكن بدلًا من البحث عن أفضل حد يفصل بين الفئات...
يبحث SVR عن أفضل خط أو منحنى يمثل البيانات...
مع السماح بهامش صغير من الخطأ.
وهذا الهامش يسمى:
ε (Epsilon).
فكر في الأمر بهذه الطريقة.
تخيل أن لديك أنبوبًا يحيط بخط الانحدار.
طالما بقيت النقاط داخل هذا الأنبوب...
فإن النموذج لا يعتبرها أخطاء تستحق التصحيح.
أما النقاط التي تقع خارج الأنبوب...
فهي فقط التي تؤثر على عملية التعلم.
ولهذا...
لا يحاول SVR تقليل الخطأ لكل نقطة...
بل يركز على الأخطاء المهمة فقط.
وهذا ما يجعله أكثر قدرة على التعميم.
لكن كيف يعبر عن ذلك رياضيًا؟
يعتمد SVR على نموذج الانحدار التالي:
f(x) = wᵀx + b
حيث:
f(x)
هي القيمة التي يتنبأ بها النموذج.
أما:
w
فهو متجه الأوزان الذي يحدد اتجاه خط الانحدار.
و:
x
يمثل بيانات الإدخال.
بينما:
b
هو معامل الإزاحة الذي يحرك الخط للأعلى أو للأسفل.
لكن العنصر الأهم...
ليس داخل المعادلة نفسها...
بل حولها.
وهو:
ε
الذي يحدد عرض المنطقة التي يسمح فيها للنموذج بتجاهل الأخطاء الصغيرة.
كلما كانت قيمة ε أكبر...
أصبح النموذج أكثر تسامحًا مع الضوضاء.
وكلما صغرت...
حاول النموذج الاقتراب من عدد أكبر من النقاط.
لكن تقليل ε كثيرًا...
قد يؤدي إلى بناء نموذج معقد...
يصعب عليه التعميم على بيانات جديدة.
ولهذا...
يعد اختيار قيمة ε المناسبة خطوة أساسية عند تدريب SVR.
متى نستخدم Support Vector Regression؟
• عندما يكون الهدف هو التنبؤ بقيم مستمرة.
• عندما تحتوي البيانات على ضوضاء أو قيم شاذة.
• عندما نحتاج إلى نموذج يحقق توازنًا جيدًا بين الدقة والقدرة على التعميم.
ولهذا يستخدم في تطبيقات مثل:
• توقع أسعار المنازل.
• التنبؤ بالمبيعات.
• التنبؤ بالطلب.
• استهلاك الطاقة.
• التنبؤ بالطقس.
• الأسواق المالية.
وفي النهاية...
لا يحاول SVR أن يكون النموذج الذي يرضي كل نقطة...
بل يحاول أن يكون النموذج الذي يفهم البيانات ككل.
وأحيانًا...
تجاهل الأخطاء الصغيرة...
هو ما يمنح النموذج القدرة على تقديم أفضل النتائج عند مواجهة بيانات لم يرها من قبل.
#الانحدار
#بايثون
#خوارزميات
23/07/2026
لماذا يمتلك Sigmoid Kernel اسمًا مألوفًا لكل من درس الشبكات العصبية؟
إذا سبق لك العمل على الشبكات العصبية...
فبالتأكيد مر عليك اسم:
Sigmoid.
لكن...
هل تعلم أن هذا المفهوم لم يقتصر على الشبكات العصبية فقط؟
بل استخدم أيضًا داخل إحدى أشهر خوارزميات التصنيف...
Support Vector Machine (SVM).
وهنا ظهر ما يعرف بـ:
Sigmoid Kernel.
لنفترض أنك تعمل على نظام لتصنيف رسائل البريد الإلكتروني.
بعض الرسائل بوضوح رسائل مزعجة (Spam).
وبعضها الآخر رسائل طبيعية.
لكن هناك مجموعة ثالثة...
يصعب تصنيفها.
فهي تحتوي على كلمات وعبارات تجعلها تقع في المنطقة الرمادية بين الفئتين.
في مثل هذه الحالات...
قد لا يكون الحد الفاصل المستقيم كافيًا.
كما أن بعض أنواع الـ Kernel قد تكون أكثر تعقيدًا مما تحتاجه المشكلة.
وهنا يمكن أن يكون Sigmoid Kernel أحد الخيارات.
لكن...
ما الذي يميزه؟
يعتمد Sigmoid Kernel على دالة رياضية تعرف باسم:
Hyperbolic Tangent (tanh)
وهي دالة تشبه إلى حد كبير دالة Sigmoid المستخدمة في الشبكات العصبية.
ولهذا جاء اسمه.
أما معادلته فهي:
K(x,x') = tanh(γxᵀx' + r)
قد تبدو المعادلة طويلة...
لكنها تتكون من أجزاء بسيطة.
x و x′
هما نقطتان من البيانات.
أما:
xᵀx'
فهو الضرب الداخلي (Dot Product).
ويقيس مدى التشابه بين النقطتين.
ثم تأتي:
γ (Gamma)
وهي المعلمة التي تتحكم في تأثير هذا التشابه.
بعدها:
r
وهو ثابت (Bias).
يقوم بإزاحة الدالة، مما يمنح النموذج مرونة إضافية.
وأخيرًا...
تمر النتيجة كلها عبر دالة:
tanh()
التي تحول القيم إلى نطاق يتراوح بين:
-1 و +1.
وهنا يبدأ النموذج في بناء حدود قرار غير خطية.
ولهذا يشبه Sigmoid Kernel في فكرته طريقة عمل الخلايا العصبية الاصطناعية.
لكن...
إذا كان بهذه القوة...
فلماذا لا يستخدم كثيرًا؟
لأن أداءه يعتمد بدرجة كبيرة على اختيار قيم:
γ و r.
وأي اختيار غير مناسب...
قد يجعل النموذج غير مستقر...
أو أقل دقة من أنواع أخرى مثل RBF Kernel.
ولهذا السبب...
نادرًا ما يكون Sigmoid Kernel هو الخيار الأول في التطبيقات العملية.
ومتى يمكن استخدامه؟
• عندما تكون البيانات غير خطية.
• عندما تتشابه طبيعة المشكلة مع الأنماط التي تتعامل معها الشبكات العصبية.
• عندما يتم اختيار المعلمات بعناية بعد إجراء التجارب.
أما في معظم التطبيقات الواقعية...
فغالبًا ما يتفوق RBF Kernel من حيث الاستقرار والدقة.
ومع ذلك...
يبقى Sigmoid Kernel مهمًا لفهم العلاقة بين عالمين كبيرين في الذكاء الاصطناعي:
Support Vector Machines
و
Neural Networks.
وفي النهاية...
ليست كل خوارزمية ناجحة لأنها الأكثر استخدامًا...
بل لأن فهمها يمنحك رؤية أعمق لكيفية تطور أفكار الذكاء الاصطناعي.
فكل Kernel يحاول حل المشكلة بطريقة مختلفة...
وكلما فهمت هذه الطرق...
أصبحت أكثر قدرة على اختيار النموذج المناسب بدلًا من الاعتماد على التجربة العشوائية.
#بايثون
#خوارزميات
23/07/2026
كيف يمكن لخوارزمية أن ترسم حدودًا معقدة... دون أن نخبرها مسبقًا كيف يجب أن يكون شكلها؟
هذا بالضبط ما يجعل RBF (Gaussian) Kernel أحد أكثر مكونات SVM قوة وانتشارًا.
لنفترض أنك تعمل على نظام للكشف عن الرسائل المزعجة (Spam Detection).
بعد تحليل البيانات...
اكتشفت أن الرسائل المزعجة ليست مجتمعة في منطقة واحدة.
كما أن الرسائل السليمة ليست بعيدة عنها بخط مستقيم.
بل تتداخل المجموعتان في أماكن كثيرة.
في هذه الحالة...
لن يكون رسم خط مستقيم كافيًا للفصل بينهما.
بل ستحتاج إلى حدود قرار أكثر مرونة...
تلتف حول الأنماط الحقيقية داخل البيانات.
وهنا يأتي دور RBF Kernel.
بدلًا من محاولة رسم خط أو منحنى محدد مسبقًا...
يقيس RBF مدى قرب كل نقطة من النقاط الأخرى.
فكلما كانت نقطتان متقاربتين...
اعتبرهما أكثر تشابهًا.
وكلما ابتعدتا...
انخفض هذا التشابه بسرعة.
ولهذا يستطيع النموذج بناء حدود قرار تتكيف مع شكل البيانات...
بدلًا من إجبار البيانات على التكيف مع شكل النموذج.
لكن كيف يفعل ذلك رياضيًا؟
تعتمد الفكرة على المعادلة التالية:
K(x,x') = exp(-γ||x-x'||²)
قد تبدو المعادلة معقدة للوهلة الأولى...
لكنها في الحقيقة بسيطة جدًا إذا فهمنا مكوناتها.
أولًا...
x و x′
تمثلان نقطتين من البيانات.
بعد ذلك...
||x−x′||²
وهو مربع المسافة الإقليدية بين النقطتين.
إذا كانت المسافة صغيرة...
فهذا يعني أن النقطتين متشابهتان.
أما إذا كانت كبيرة...
فهما مختلفتان.
ثم تأتي القيمة الأهم...
γ (Gamma)
وهي المعلمة التي تتحكم في مدى تأثير كل نقطة تدريب على القرار النهائي.
تخيل أنك ألقيت حجرًا في بحيرة.
كل حجر يصنع دوائر تنتشر حوله.
إذا كانت قيمة γ صغيرة...
فستكون الدوائر كبيرة.
أي أن كل نقطة تؤثر في مساحة واسعة من البيانات.
فينتج حد قرار ناعم وبسيط...
لكن أحيانًا يكون أبسط من اللازم.
أما إذا كانت γ كبيرة...
فستصبح الدوائر صغيرة جدًا.
وسيركز النموذج على التفاصيل الدقيقة حول كل نقطة.
وهذا يمنحه قدرة كبيرة على تمثيل الأنماط المعقدة...
لكنه قد يحفظ بيانات التدريب بدلًا من تعلمها.
وهنا تظهر مشكلة تعرف باسم:
Overfitting.
ولهذا فإن اختيار قيمة γ المناسبة...
هو أحد أهم أسباب نجاح أو فشل نموذج SVM باستخدام RBF Kernel.
ولهذا السبب أيضًا...
تجد أن معظم تطبيقات تعلم الآلة لا تعتمد القيمة الافتراضية دون تجربة.
بل تستخدم تقنيات مثل Cross Validation لاختيار أفضل قيمة تحقق أعلى قدرة على التعميم.
متى نستخدم RBF Kernel؟
• عندما تكون البيانات غير قابلة للفصل خطيًا.
• عندما لا نعرف شكل العلاقة بين المتغيرات.
• عندما نتوقع وجود أنماط معقدة وغير خطية.
ولهذا يستخدم في العديد من التطبيقات مثل:
• التعرف على الوجوه.
• اكتشاف الاحتيال المالي.
• التشخيص الطبي.
• تصنيف النصوص.
• الأمن السيبراني.
ولماذا يعد RBF Kernel الأكثر استخدامًا؟
لأنه لا يفترض أي شكل مسبق للعلاقة بين البيانات.
بل يترك البيانات نفسها تحدد شكل حدود القرار.
ولهذا...
يعتبر الخيار الأول في كثير من تطبيقات SVM العملية.
وفي النهاية...
ليست قوة النموذج في قدرته على رسم حدود أكثر تعقيدًا...
بل في قدرته على رسم الحدود المناسبة للبيانات.
فكلما فهمت بياناتك بصورة أفضل...
احتجت إلى تعقيد أقل...
وحصلت على نتائج أفضل.
#بايثون
#خوارزميات
22/07/2026
إعلان | خدمات البحث العلمي والتطوير التقني
انطلاقاً من رسالتنا في دعم الباحثين وتطوير الحلول المعتمدة على علوم البيانات والذكاء الاصطناعي، يعلن فريق DataCraft Hub عن استعداده لتقديم الدعم التقني والبرمجي لمشاريع ورسائل الماجستير والدكتوراه في مختلف التخصصات التي تعتمد على تحليل البيانات و النمذجة الذكية والذكاء الاصطناعي.
تشمل خدماتنا:
• تصميم وتنفيذ المنهجية التطبيقية للدراسة.
• جمع البيانات من المصادر المناسبة أو بناء مجموعات بيانات تخدم أهداف البحث.
• تنظيف البيانات، معالجتها، وتجهيزها للتحليل.
• إجراء التحليل الإحصائي والتحليل الاستكشافي للبيانات (EDA).
• تصميم وتطوير نماذج التعلم الآلي (Machine Learning) والتعلم العميق (Deep Learning) والشبكات العصبية (Neural Networks).
• تدريب النماذج وتحسينها وتقييمها باستخدام المؤشرات العلمية المعتمدة.
• مقارنة النماذج واستخلاص أفضل النتائج وفق معايير البحث العلمي.
• المساهمة في إعداد وصياغة فصل النتائج وتفسير المخرجات وربطها بأهداف الدراسة، اعتماداً على النتائج الفعلية للتحليل.
• توثيق خطوات العمل البرمجية وإعداد الأكواد بطريقة منظمة وقابلة لإعادة التنفيذ.
مجالات الدعم تشمل – على سبيل المثال لا الحصر:
- تحليل البيانات (Data Analysis).
- علم البيانات (Data Science).
- التعلم الآلي والتعلم العميق.
- الرؤية الحاسوبية (Computer Vision).
- معالجة اللغة الطبيعية (NLP).
- النماذج اللغوية الكبيرة (LLMs).
- الذكاء الاصطناعي التوليدي (Generative AI).
- التنبؤ، التصنيف، التجميع، واكتشاف الشذوذ.
- تحليل السلاسل الزمنية.
- بناء لوحات المعلومات التفاعلية (Power BI).
- هندسة البيانات (Data Engineering).
نعمل وفق مبادئ واضحة:
- الالتزام بالمنهجية العلمية.
- الدقة في التحليل والتوثيق.
- السرية التامة للبيانات والأبحاث.
- تقديم حلول تقنية مخصصة لكل مشروع.
- دعم الباحث لفهم جميع مراحل التنفيذ، وليس مجرد تنفيذها.
إذا كنت تعمل على رسالة ماجستير أو دكتوراه، أو مشروع بحثي يتطلب حلولاً برمجية متقدمة أو نماذج ذكاء اصطناعي، فإن فريق DataCraft Hub مستعد لمرافقتك في الجانب التقني والتطبيقي حتى الوصول إلى نتائج موثوقة وقابلة للنشر.
22/07/2026
لو طلبت منك رسم حد يفصل بين منطقتين على الخريطة...
وكانت كل منطقة تقع على جانب مختلف...
فلن تحتاج إلى أكثر من خط مستقيم.
لكن...
ماذا لو كانت إحدى المنطقتين تحيط بالأخرى؟
هل سيبقى الخط المستقيم كافيًا؟
الإجابة...
لا.
لأن المشكلة لم تعد في الخط...
بل في شكل البيانات نفسها.
وهذا هو السبب الذي أدى إلى ظهور:
Polynomial Kernel.
لنأخذ مثالًا من الحياة الواقعية.
تخيل أنك تعمل في بنك...
وتريد تصنيف العملاء إلى:
• منخفضي المخاطر.
• مرتفعي المخاطر.
بعد تحليل البيانات...
لاحظت أن العملاء مرتفعي المخاطر ليسوا في جهة واحدة.
بل موزعون بطريقة تجعل الحدود بينهم وبين بقية العملاء منحنية.
جربت رسم أفضل خط مستقيم...
لكن في كل مرة...
سيبقى عدد من العملاء في الجانب الخطأ.
فهل تستخدم نموذجًا أكثر تعقيدًا؟
ليس بالضرورة.
بل تجعل النموذج يرى العلاقات بطريقة مختلفة.
وهذا بالضبط ما يفعله Polynomial Kernel.
بدلًا من البحث عن حد قرار مستقيم...
يسمح للنموذج برسم حدود أكثر مرونة وانحناءً...
لتتناسب مع طبيعة البيانات.
ولفهم ذلك...
دعنا ننظر إلى المعادلة.
K(x,x') = (xᵀx' + c)ᵈ
قد تبدو أطول قليلًا من معادلة Linear Kernel...
لكن كل جزء فيها يؤدي دورًا مهمًا.
لنبدأ بالجزء الأول:
xᵀx'
وهو الضرب الداخلي (Dot Product).
هذا الجزء يقيس مدى التشابه بين نقطتين.
فإذا كان لدينا عميلان يمتلكان دخلًا وعمرًا وسجلًا ائتمانيًا متقاربًا...
فستكون قيمة التشابه بينهما كبيرة.
أما إذا كانت خصائصهما مختلفة...
فستنخفض هذه القيمة.
ثم نضيف:
+c
وهو ثابت يمنح النموذج مرونة إضافية...
خصوصًا عندما لا تكون البيانات متمركزة حول نقطة الأصل.
لكن الجزء الأكثر أهمية هو:
d
وهي درجة كثير الحدود (Polynomial Degree).
تخيل أنك ترسم طريقًا.
إذا كانت الدرجة:
d = 1
فسيبقى الطريق مستقيمًا.
أما إذا أصبحت:
d = 2
فسيسمح الطريق بأول انحناء.
وإذا أصبحت:
d = 3
أو 4...
فسيصبح أكثر مرونة...
وقادرًا على الالتفاف حول الأنماط المعقدة.
أي أن زيادة قيمة d...
لا تجعل النموذج أسرع...
بل تجعله يرى علاقات أكثر تعقيدًا بين البيانات.
لكن...
هل يعني ذلك أن اختيار أكبر قيمة دائمًا هو الأفضل؟
الإجابة...
لا.
لأن زيادة درجة كثير الحدود بشكل كبير...
قد تجعل النموذج يحفظ بيانات التدريب...
بدلًا من تعلم الأنماط الحقيقية.
وهنا تظهر مشكلة تعرف باسم:
Overfitting.
ولهذا...
اختيار قيمة d المناسبة...
يعتمد على طبيعة البيانات...
وليس على الرغبة في جعل النموذج أكثر تعقيدًا.
ومتى يكون Polynomial Kernel خيارًا مناسبًا؟
• عندما لا تكون البيانات قابلة للفصل بخط مستقيم.
• عندما نحتاج إلى حدود قرار منحنية.
• عندما تكون العلاقات بين المتغيرات غير خطية ولكنها ليست شديدة التعقيد.
ولهذا يستخدم في العديد من التطبيقات مثل:
• التعرف على الأنماط.
• الرؤية الحاسوبية.
• تحليل الإشارات.
• بعض تطبيقات التصنيف الطبي والمالي.
وفي النهاية...
يعلمنا Polynomial Kernel درسًا مهمًا.
ليست كل المشكلات مستقيمة...
وليس كل الحلول يجب أن تكون مستقيمة أيضًا.
أحيانًا...
القليل من الانحناء...
هو ما يصنع الفارق بين نموذج يفشل...
ونموذج يفهم البيانات كما هي في الواقع.
إذا أعجبك هذا النوع من المحتوى، تابع DataCraft Hub، حيث نحول مفاهيم الذكاء الاصطناعي المعقدة إلى أفكار واضحة وسهلة الفهم.
#بايثون
#خوارزميات
21/07/2026
هل نحتاج دائمًا إلى Kernel معقد؟
بعد أن تعرفنا في المنشور السابق على Kernel Trick...
قد يتبادر إلى ذهنك سؤال منطقي.
إذا كان بإمكاننا استخدام Kernels معقدة مثل Polynomial وRBF...
فلماذا لا نستخدمها في كل مرة؟
ألن تعطينا نتائج أفضل دائمًا؟
الإجابة...
لا.
بل في كثير من الأحيان...
سيكون أبسط Kernel هو أفضل اختيار.
دعنا نبدأ بمثال من الحياة الواقعية.
تخيل أنك تعمل في أحد البنوك...
ومهمتك تصنيف طلبات القروض إلى:
• عملاء منخفضو المخاطر.
• عملاء مرتفعو المخاطر.
بعد رسم البيانات...
لاحظت شيئًا مثيرًا للاهتمام.
العملاء منخفضو المخاطر تجمعوا في جهة.
والعملاء مرتفعو المخاطر في الجهة الأخرى.
وبينهما مساحة واضحة.
يكفي رسم خط مستقيم واحد...
ليتم الفصل بين المجموعتين بدقة.
هنا دعني أسألك...
هل ستستخدم نموذجًا أكثر تعقيدًا؟
أم ستكتفي بالحل البسيط الذي يؤدي المهمة؟
بالتأكيد...
الحل الأبسط.
وهذه هي الفلسفة التي يقوم عليها...
Linear Kernel.
فهو لا يحاول تحويل البيانات إلى فضاءات أعلى.
ولا يبحث عن حدود قرار معقدة.
بل يفترض أن البيانات...
قابلة للفصل بالفعل في فضائها الأصلي.
وكل ما يحتاج إليه...
هو إيجاد أفضل خط مستقيم يفصل بين الفئات.
أي نفس الفكرة التي تعلمناها مع SVM...
لكن دون أي تحويل إضافي.
ولهذا يعتبر:
Linear Kernel
هو أبسط أنواع الـ Kernel...
وأسرعها تنفيذًا.
لكن...
كيف يعرف النموذج أن عميلين متشابهان؟
وكيف يقرر إلى أي جهة ينتمي العميل الجديد؟
هنا تظهر المعادلة التي يقوم عليها كل شيء.
K(x,x') = xᵀx'
قد تبدو هذه المعادلة معقدة لأول وهلة...
لكن فكرتها في الحقيقة بسيطة جدًا.
لنعد إلى مثال البنك.
كل عميل لا يمثل باسمه...
بل بمجموعة من الخصائص مثل:
• الدخل الشهري.
• العمر.
• سنوات الخبرة.
• نسبة الديون.
يمكن تخيل كل عميل على أنه متجه (Vector):
x = [الدخل، العمر، الخبرة، الديون]
وعندما يصل عميل جديد...
لا يسأل SVM:
"هل هذا العميل جيد؟"
بل يسأل سؤالًا مختلفًا تمامًا.
"إلى أي العملاء السابقين يشبه هذا العميل أكثر؟"
وللإجابة عن هذا السؤال...
يحسب قيمة:
K(x,x') = xᵀx'
أي الضرب الداخلي (Dot Product) بين متجهي الخصائص.
لكن...
ماذا تعني هذه القيمة؟
إذا كانت كبيرة...
فهذا يعني أن المتجهين يسيران تقريبًا في الاتجاه نفسه...
أي أن خصائص العميلين متشابهة.
أما إذا كانت صغيرة...
أو سالبة...
فهذا يعني أن التشابه بينهما ضعيف.
ومن خلال حساب هذا التشابه بين جميع العملاء...
يستطيع SVM فهم العلاقات داخل البيانات...
ثم يبحث عن أفضل Hyperplane يفصل بين الفئات ويحقق أكبر Margin ممكن.
وهنا تظهر نقطة مهمة جدًا.
رغم أننا نسميه "Kernel"...
إلا أنه لا يقوم بأي تحويل إلى فضاء أعلى أبعادًا.
ولهذا يقال دائمًا:
Linear Kernel = No Mapping.
أي أن البيانات تبقى كما هي...
ويستغل النموذج العلاقات الخطية الموجودة فيها فقط.
وهذا هو سبب سرعته.
فلا توجد حسابات إضافية...
ولا تحويلات معقدة...
ولا أبعاد جديدة.
مجرد مقارنة مباشرة بين المتجهات.
لكن...
متى يكون الخيار الأفضل؟
يكون مناسبًا عندما:
• تكون البيانات قابلة للفصل بخط مستقيم.
• يكون حجم البيانات كبيرًا.
• نحتاج إلى تدريب سريع.
• نريد نموذجًا بسيطًا وسهل التفسير.
ولهذا يستخدم كثيرًا في:
• تصنيف النصوص.
• تحليل البريد الإلكتروني.
• تصنيف المستندات.
• بعض تطبيقات تحليل المشاعر.
لكن...
ماذا لو كانت البيانات متداخلة؟
هنا يبدأ Linear Kernel بفقدان قوته.
فإذا احتاجت البيانات إلى حدود قرار منحنية...
أو كانت العلاقات بينها غير خطية...
فلن يستطيع رسم الحد المناسب.
وهنا ننتقل إلى أنواع أكثر مرونة...
مثل Polynomial Kernel أو RBF Kernel.
ولماذا لا يزال Linear Kernel مهمًا حتى اليوم؟
لأن هناك قاعدة مشهورة في تعلم الآلة تقول:
"لا تجعل الحل أكثر تعقيدًا مما تتطلبه المشكلة."
فإذا كان خط مستقيم قادرًا على حل المشكلة...
فلا يوجد سبب لإضافة تعقيد لن يقدم فائدة حقيقية.
ولهذا...
يبدأ كثير من علماء البيانات دائمًا بـ Linear Kernel.
فإذا كان أداؤه جيدًا...
يتوقفون عنده.
أما إذا لم يكن كافيًا...
حينها فقط ينتقلون إلى Kernels الأكثر تعقيدًا.
وفي النهاية...
Linear Kernel يعلمنا درسًا مهمًا...
القوة في تعلم الآلة...
لا تعني دائمًا استخدام النموذج الأكثر تعقيدًا.
بل تعني اختيار النموذج المناسب للمشكلة.
وفي كثير من الأحيان...
يكون أبسط حل...
هو أفضل حل.
وفي المنشور القادم...
سننتقل إلى أول Kernel يستطيع رسم حدود قرار منحنية...
ونتعرف على:
Polynomial Kernel.
كيف يحول الخط المستقيم...
إلى حدود قرار أكثر مرونة؟
إذا كنت تريد فهم الذكاء الاصطناعي من الداخل، وليس مجرد حفظ أسماء الخوارزميات، فتابع DataCraft Hub، حيث نبني رحلة مترابطة تشرح كيف وُلدت الأفكار، ولماذا ظهرت، ومتى نستخدمها في الواقع.
21/07/2026
كيف يستطيع SVM حل مشكلة تبدو... مستحيلة؟
في المنشور السابق...
تعرفنا على أن Support Vector Machine (SVM) يبحث عن أفضل حد فاصل بين الفئات.
وكانت الفكرة بسيطة.
إذا أمكن رسم خط مستقيم يفصل البيانات...
فسنختار الخط الذي يحقق أكبر هامش (Maximum Margin).
لكن...
دعنا نطرح سؤالًا مهمًا.
ماذا لو لم يكن هناك أي خط مستقيم يستطيع الفصل بين البيانات؟
هل يتوقف SVM عن العمل؟
لنأخذ مثالًا من الحياة الواقعية.
تخيل أنك تعمل في بنك...
وطُلب منك بناء نظام يكتشف عمليات الاحتيال المالي.
بعد تحليل البيانات...
لاحظت أن العمليات الاحتيالية ليست مجتمعة في جهة واحدة.
بل تحيط بها العمليات الطبيعية من جميع الاتجاهات.
حاول رسم خط مستقيم للفصل بينهما...
لن تستطيع.
ومهما غيرت زاوية الخط...
ستجد دائمًا نقاطًا مختلطة.
فهل المشكلة في SVM؟
الإجابة...
لا.
المشكلة ليست في النموذج...
بل في الطريقة التي ننظر بها إلى البيانات.
ولفهم ذلك...
دعنا نستخدم المثال الأشهر في تعلم الآلة.
تخيل دائرة صغيرة من النقاط الزرقاء...
تحيط بها دائرة أكبر من النقاط الحمراء.
هذا المثال يعرف باسم:
Concentric Circles.
ولو حاولت فصل الدائرتين بخط مستقيم...
فلن تنجح مهما حاولت.
لأن البيانات ليست خطية (Non-Linear).
وهنا جاءت واحدة من أذكى الأفكار في تاريخ تعلم الآلة...
Kernel Trick.
لكن...
ما الفكرة ببساطة؟
تخيل أن لديك ورقة مرسومًا عليها هذه النقاط.
وأنت تنظر إليها من الأعلى.
كل ما تراه هو بعدان فقط.
x و y.
لكن ماذا لو استطعت رفع بعض النقاط إلى الأعلى...
وأبقيت نقاطًا أخرى في الأسفل؟
فجأة...
لن تحتاج إلى خط معقد.
بل سيصبح مستوى مستقيم واحد كافيًا للفصل بينها.
لاحظ...
البيانات نفسها لم تتغير.
الذي تغير فقط...
هو الفضاء الذي أصبحت تُرى فيه.
وهذه هي الفكرة الجوهرية لـ Kernel Trick.
بدلًا من محاولة رسم حدود قرار معقدة في بعدين...
يقوم SVM بالنظر إلى البيانات في فضاء أعلى أبعادًا...
حيث يصبح الفصل بسيطًا.
لكن...
هل يقوم SVM فعلًا بتحويل كل البيانات إلى هذا الفضاء الجديد؟
لو فعل ذلك...
لاحتاج إلى ذاكرة هائلة...
وزمن تدريب كبير جدًا.
وهنا تأتي كلمة:
Trick.
فالخدعة ليست في التحويل...
بل في أننا لا ننفذ التحويل أصلًا.
بدلًا من ذلك...
نستخدم دالة رياضية تسمى:
Kernel Function.
هذه الدالة تحسب التشابه بين النقاط...
وكأن البيانات انتقلت بالفعل إلى فضاء أعلى أبعادًا...
دون أن يحدث هذا التحويل فعليًا.
ولهذا يحصل SVM على فوائد الأبعاد العالية...
دون تحمل تكلفتها الحسابية.
ولهذا سميت:
Kernel Trick.
لأنها تبدو وكأنها خدعة رياضية...
لكنها في الحقيقة فكرة رياضية ذكية للغاية.
وليس كل Kernel متشابهًا.
فهناك أنواع مختلفة...
وكل نوع يناسب شكلًا مختلفًا من البيانات.
ومن أشهرها:
• Linear Kernel
• Polynomial Kernel
• RBF (Gaussian) Kernel
• Sigmoid Kernel
وسنخصص منشورًا مستقلًا لكل واحد منها.
لكن...
متى نستخدم Kernel Trick؟
عندما تكون البيانات:
• غير قابلة للفصل بخط مستقيم.
• تحتوي على علاقات غير خطية.
• تحتاج إلى حدود قرار أكثر مرونة.
أما إذا كانت البيانات خطية بالفعل...
فغالبًا لن تحتاج إليه.
ولماذا لا تزال هذه الفكرة مهمة حتى اليوم؟
لأنها علمتنا درسًا مهمًا...
أحيانًا...
لا تكون المشكلة في البيانات...
ولا في الخوارزمية...
بل في زاوية النظر.
فبمجرد تغيير طريقة تمثيل البيانات...
يمكن أن تتحول مشكلة معقدة جدًا...
إلى مشكلة بسيطة للغاية.
وهذا هو جوهر Kernel Trick.
وفي المنشور القادم...
سنبدأ بأول وأبسط أنواع الـ Kernel...
ونتعرف على:
Linear Kernel
ومتى يكون كافيًا دون الحاجة إلى أي تحويلات إضافية.
إذا كنت تريد فهم الذكاء الاصطناعي من الداخل، وليس مجرد حفظ أسماء الخوارزميات، فتابع DataCraft Hub، حيث نبني رحلة مترابطة تشرح كيف وُلدت الأفكار، ولماذا ظهرت، ومتى نستخدمها في الواقع.