تحليل المصفوفات بالعوامل باستخدام SVD
مصفوفة المستخدمين والعناصر، وتحليل SVD، والعوامل الكامنة، وتطبيق مكتبة Surprise
تحليل المصفوفات بالعوامل باستخدام SVD درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
لماذا تحليل المصفوفات؟
مصفوفة المستخدم والعنصر ضخمة وفارغة في معظمها. يضغط تحليل المصفوفات هذه المصفوفة في مصفوفتين أصغر من العوامل الكامنة، إحداهما للمستخدمين والأخرى للعناصر، ويعيد حاصل ضربهما بناء التقييمات وملء القيم المفقودة فيها. ويتعامل هذا الأسلوب مع التناثر بكفاءة أكبر بكثير من أساليب الجيران.
فهم العوامل الكامنة
يُوصَف كل مستخدم وكل عنصر بمتجه قصير من السمات المخفية، مثل الميل إلى أفلام الحركة أو الكوميديا. والتقييم المتنبأ به هو الضرب النقطي لمتجه المستخدم ومتجه العنصر، ويتم تعلّمهما اعتمادًا على البيانات وحدها.
استخدام SVD في التوصيات
تتعلّم النماذج الشبيهة بـSVD هذه العوامل من خلال تقليل خطأ التنبؤ في التقييمات المعروفة، مع إضافة التنظيم. وتوفر مكتبة surprise تطبيقًا جاهزًا من SVD مُحسّنًا للتوصية، وقد ساهمت جائزة Netflix في زيادة انتشاره.
مكتبة Surprise
استوردوا المكونات التي تحتاجون إليها: الخوارزمية، وغلاف مجموعة البيانات، والقارئ الذي يصف تنسيق بياناتكم.
from surprise import SVD, Dataset, Reader
from surprise.model_selection import cross_validateReader وrating_scale
يُخبر Reader مكتبة Surprise بنطاق التقييمات الصالح من خلال rating_scale. طابقوا هذا النطاق مع بياناتكم، مثلًا من 1 إلى 5 نجوم، وإلا فلن تكون التنبؤات معايرة بصورة صحيحة.
reader = Reader(rating_scale=(1, 5))تحميل DataFrame
حمّلوا DataFrame يتكون من ثلاثة أعمدة بالترتيب التالي تمامًا: user، item، rating.
data = Dataset.load_from_df(
df[["user_id", "item_id", "rating"]],
reader
)التحقق المتقاطع
تقيّم cross_validate النموذج عبر عدة طيات، وتعرض مقاييس الخطأ حتى تتمكنوا من الحكم على الدقة بموضوعية باستخدام بيانات محجوزة للاختبار.
results = cross_validate(
SVD(), data,
measures=["RMSE", "MAE"],
cv=5,
verbose=True
)RMSE وMAE
- RMSE (الجذر التربيعي لمتوسط مربع الخطأ) يعاقب الأخطاء الكبيرة بشدة.
- MAE (متوسط الخطأ المطلق) هو متوسط مقدار الخطأ المطلق، وهو أسهل في التفسير.
القيمة الأقل أفضل في الحالتين، ويُعد RMSE المقياس القياسي الأبرز للتنبؤ بالتقييمات.
التدريب على المجموعة الكاملة
بعد التحقق، درّبوا النموذج على مجموعة البيانات بأكملها قبل تقديم التنبؤات.
trainset = data.build_full_trainset()
algo = SVD()
algo.fit(trainset)إجراء التنبؤات
تعيد algo.predict(uid, iid) كائن تنبؤ يحتوي حقله .est على التقييم المقدّر لذلك الزوج من المستخدم والعنصر.
pred = algo.predict(uid="user_42", iid="item_99")
print(pred.est) # estimated ratingضبط المعلمات الفائقة
تتضمن إعدادات SVD الأساسية n_factors (البعد الكامن)، وn_epochs، وlr_all (معدل التعلم)، وreg_all (التنظيم). استخدموا GridSearchCV للعثور على أفضل تركيبة وفق RMSE.
from surprise.model_selection import GridSearchCV
grid = {"n_factors": [50, 100], "reg_all": [0.02, 0.1]}
gs = GridSearchCV(SVD, grid, measures=["rmse"], cv=3)
gs.fit(data)
print(gs.best_params["rmse"])اختبار سريع
اختبروا معرفتكم بتحليل المصفوفات.
مراجعة
تعلّمتم تحليل المصفوفات باستخدام SVD: وهي متجهات كامنة للمستخدمين والعناصر، يتنبأ ضربها النقطي بالتقييمات. وباستخدام surprise، ضبطتم rating_scale، وحمّلتم البيانات، وشغّلتم cross_validate باستخدام RMSE/MAE، ودرّبتم النموذج، واستدعيتم algo.predict(uid, iid). التالي: الترشيح القائم على المحتوى.
الأسئلة الشائعة
هل درس «تحليل المصفوفات بالعوامل باستخدام SVD» مجاني؟
نعم — نص درس «تحليل المصفوفات بالعوامل باستخدام SVD» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «تحليل المصفوفات بالعوامل باستخدام SVD»؟
مصفوفة المستخدمين والعناصر، وتحليل SVD، والعوامل الكامنة، وتطبيق مكتبة Surprise تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تحليل المصفوفات بالعوامل باستخدام SVD»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الترشيح التعاوني: القائم على المستخدم والقائم على العنصر
- تحليل المصفوفات بالعوامل باستخدام SVD
- الترشيح القائم على المحتوى
- الأنظمة الهجينة ومقاييس التقييم