المُقدّمة
هذا الدليل هو الجزء الثالث والأخير من ثلاثة أدلة حول آلات المتجهات الداعمة (SVM). في هذا الدليل ، سنواصل العمل مع حالة استخدام الأوراق النقدية المزورة ، وسنلخص سريعًا الفكرة العامة وراء SVMs ، ونفهم ما هي خدعة النواة ، وننفذ أنواعًا مختلفة من النواة غير الخطية باستخدام Scikit-Learn.
في السلسلة الكاملة من أدلة SVM ، إلى جانب التعرف على أنواع أخرى من SVMs ، ستتعرف أيضًا على معلمات SVM بسيطة ومعلمات SVM محددة مسبقًا ومعلمات C و Gamma الفائقة وكيف يمكن ضبطها باستخدام بحث الشبكة والتحقق المتقاطع.
إذا كنت ترغب في قراءة الأدلة السابقة ، يمكنك إلقاء نظرة على أول دليلين أو معرفة الموضوعات التي تهمك أكثر. يوجد أدناه جدول الموضوعات التي تم تناولها في كل دليل:
- حالة الاستخدام: انسى الأوراق النقدية
- خلفية SVMs
- نموذج بسيط (خطي) SVM
- حول مجموعة البيانات
- استيراد مجموعة البيانات
- استكشاف مجموعة البيانات
- تنفيذ SVM باستخدام Scikit-Learn
- تقسيم البيانات إلى تدريب / مجموعات اختبار
- تدريب النموذج
- يتنبأ
- تقييم النموذج
- تفسير النتائج
- C Hyperparameter
- معلمة غاما Hyperparameter
3. تطبيق نكهات SVM الأخرى باستخدام Scikit-Learn من Python
- الفكرة العامة لـ SVMs (ملخص)
- نواة (خدعة) SVM
- تطبيق SVM غير الخطي للنواة باستخدام Scikit-Learn
- استيراد مكتبات
- استيراد مجموعة البيانات
- تقسيم البيانات إلى ميزات (س) والهدف (ص)
- تقسيم البيانات إلى مجموعات تدريب / اختبار
- تدريب الخوارزمية
- نواة متعددة الحدود
- يتنبأ
- تقييم الخوارزمية
- نواة جاوس
- التنبؤ والتقييم
- نواة السيني
- التنبؤ والتقييم
- مقارنة أداء النواة غير الخطية
دعنا نتذكر ما هو كل شيء عن SVM قبل رؤية بعض الاختلافات المثيرة للاهتمام لنواة SVM.
الفكرة العامة لـ SVMs
في حالة البيانات القابلة للفصل خطيًا في بعدين (كما هو موضح في الشكل 1) ، فإن نهج خوارزمية التعلم الآلي النموذجي سيكون محاولة العثور على حد يقسم البيانات بطريقة تقلل خطأ التصنيف الخاطئ إلى الحد الأدنى. إذا نظرت عن كثب إلى الشكل 1 ، لاحظ أنه يمكن أن يكون هناك عدة حدود (غير محدودة) تقسم نقاط البيانات بشكل صحيح. السطران المتقطعان وكذلك الخط الصلب كلها تصنيفات صالحة للبيانات.
الشكل 1: حدود القرار المتعددة
عندما يختار SVM ملف حدود القرار، يختار حدًا يزيد المسافة بينه وبين أقرب نقاط بيانات للفئات. نحن نعلم بالفعل أن أقرب نقاط البيانات هي متجهات الدعم وأن المسافة يمكن تحديدها معًا C
و gamma
المعلمات الفائقة.
عند حساب حدود القرار ، تختار الخوارزمية عدد النقاط التي يجب مراعاتها وإلى أي مدى يمكن أن يصل الهامش - وهذا يكوّن مشكلة تعظيم الهامش. في حل مشكلة تعظيم الهامش هذه ، يستخدم SVM متجهات الدعم (كما هو موضح في الشكل 2) ويحاول معرفة القيم المثلى التي تحافظ على مسافة الهامش أكبر ، مع تصنيف المزيد من النقاط بشكل صحيح وفقًا للوظيفة المستخدمة في افصل البيانات.
الشكل 2: حدود القرار مع متجهات الدعم
هذا هو السبب في اختلاف SVM عن خوارزميات التصنيف الأخرى ، بمجرد عدم العثور على حدود القرار فحسب ، بل ينتهي الأمر بإيجاد حدود القرار الأمثل.
هناك رياضيات معقدة مشتقة من الإحصائيات والأساليب الحسابية المتضمنة وراء إيجاد متجهات الدعم ، وحساب الهامش بين حدود القرار ومتجهات الدعم ، وتعظيم هذا الهامش. هذه المرة ، لن ندخل في تفاصيل كيفية عمل الرياضيات.
من المهم دائمًا التعمق أكثر والتأكد من أن خوارزميات التعلم الآلي ليست نوعًا من التعويذة الغامضة ، على الرغم من أن عدم معرفة كل التفاصيل الرياضية في هذا الوقت لم ولن يمنعك من القدرة على تنفيذ الخوارزمية والحصول على النتائج.
المشورة: الآن بعد أن قمنا بتلخيص العملية الحسابية ، من الواضح أن المسافة بين نقاط البيانات ستؤثر على حدود القرار التي يختارها SVM ، بسبب ذلك ، تحجيم البيانات عادة ما يكون ضروريًا عند استخدام مصنف SVM. جرب استخدام طريقة Scaler القياسية لـ Scikit-Learn لتجهيز البيانات ، ثم تشغيل الأكواد مرة أخرى لمعرفة ما إذا كان هناك اختلاف في النتائج.
نواة (خدعة) SVM
في القسم السابق ، تذكرنا ونظمنا الفكرة العامة لـ SVM - ونرى كيف يمكن استخدامها للعثور على حدود القرار الأمثل للبيانات القابلة للفصل خطيًا. ومع ذلك ، في حالة البيانات غير القابلة للفصل خطيًا ، مثل تلك الموضحة في الشكل 3 ، نعلم بالفعل أنه لا يمكن استخدام الخط المستقيم كحد قرار.
الشكل 3: البيانات غير القابلة للفصل خطيًا
بدلاً من ذلك ، يمكننا استخدام النسخة المعدلة من SVM التي ناقشناها في البداية ، والتي تسمى Kernel SVM.
بشكل أساسي ، ما سيفعله kernel SVM هو عرض البيانات غير الخطية القابلة للفصل ذات الأبعاد السفلية إلى شكلها المقابل بأبعاد أعلى. هذه خدعة ، لأنه عند عرض بيانات غير قابلة للفصل خطيًا بأبعاد أعلى ، يتغير شكل البيانات بطريقة تجعلها قابلة للفصل. على سبيل المثال ، عند التفكير في 3 أبعاد ، يمكن أن ينتهي الأمر بتخصيص نقاط البيانات من كل فئة في بُعد مختلف ، مما يجعلها قابلة للفصل. يمكن أن تكون إحدى طرق زيادة أبعاد البيانات من خلال أسها. مرة أخرى ، هناك رياضيات معقدة متضمنة في هذا ، لكن لا داعي للقلق بشأن ذلك من أجل استخدام SVM. بدلاً من ذلك ، يمكننا استخدام مكتبة Python Scikit-Learn لتنفيذ واستخدام النواة غير الخطية بنفس الطريقة التي استخدمنا بها الخطية.
تطبيق SVM غير الخطي للنواة باستخدام Scikit-Learn
في هذا القسم ، سنستخدم نفس مجموعة البيانات للتنبؤ بما إذا كانت الورقة النقدية حقيقية أم مزورة وفقًا للميزات الأربع التي نعرفها بالفعل.
سترى أن بقية الخطوات هي خطوات نموذجية للتعلم الآلي وتحتاج إلى القليل من الشرح حتى نصل إلى الجزء الذي نقوم فيه بتدريب أجهزة SVM غير الخطية الخاصة بنا.
استيراد مكتبات
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from sklearn.model_selection import train_test_split
استيراد مجموعة البيانات
data_link = "https://archive.ics.uci.edu/ml/machine-learning-databases/00267/data_banknote_authentication.txt"
col_names = ["variance", "skewness", "curtosis", "entropy", "class"] bankdata = pd.read_csv(data_link, names=col_names, sep=",", header=None)
bankdata.head()mes)
تقسيم البيانات إلى ميزات (س) والهدف (ص)
X = bankdata.drop('class', axis=1)
y = bankdata['class']
تقسيم البيانات إلى تدريب / مجموعات اختبار
SEED = 42 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20, random_state = SEED)
تدريب الخوارزمية
لتدريب kernel SVM ، سنستخدم نفس الشيء SVC
فئة Scikit-Learn svm
مكتبة. يكمن الاختلاف في قيمة معلمة kernel الخاصة بـ SVC
فئة.
في حالة SVM البسيط ، استخدمنا "الخطي" كقيمة لمعامل kernel. ومع ذلك ، كما ذكرنا سابقًا ، بالنسبة لـ kernel SVM ، يمكننا استخدام نواة Gaussian أو متعدد الحدود أو السيني أو النواة القابلة للحساب. سنقوم بتطبيق حبات متعددة الحدود ، و Gaussian ، و sigmoid ، وننظر في مقاييسها النهائية لمعرفة أي منها يبدو مناسبًا لفئاتنا بمقياس أعلى.
1. نواة متعددة الحدود
في الجبر ، كثير الحدود هو تعبير عن النموذج:
$$
2 أ * ب ^ 3 + 4 أ - 9
$$
هذا له متغيرات ، مثل a
و b
، الثوابت ، في مثالنا ، 9
والمعاملات (ثوابت مصحوبة بمتغيرات) مثل 2
و 4
. 3
تعتبر درجة كثيرة الحدود.
هناك أنواع من البيانات التي يمكن وصفها بشكل أفضل عند استخدام دالة متعددة الحدود ، وهنا ، ما ستفعله النواة هو تعيين بياناتنا إلى كثير الحدود الذي سنختار الدرجة وفقًا لها. كلما زادت الدرجة ، كلما حاولت الوظيفة الاقتراب أكثر من البيانات ، وبالتالي فإن حدود القرار أكثر مرونة (وأكثر عرضة للإفراط في التجهيز) - كلما انخفضت الدرجة ، كانت أقل مرونة.
تحقق من دليلنا العملي العملي لتعلم Git ، مع أفضل الممارسات ، والمعايير المقبولة في الصناعة ، وورقة الغش المضمنة. توقف عن أوامر Googling Git وفي الواقع تعلم ذلك!
لذلك ، لتنفيذ نواة كثيرة الحدود، إلى جانب اختيار ملف poly
kernel ، سنقوم أيضًا بتمرير قيمة لـ degree
المعلمة من SVC
فصل. يوجد أدناه الرمز:
from sklearn.svm import SVC
svc_poly = SVC(kernel='poly', degree=8)
svc_poly.fit(X_train, y_train)
يتنبأ
الآن ، بمجرد أن ندرب الخوارزمية ، فإن الخطوة التالية هي عمل تنبؤات على بيانات الاختبار.
كما فعلنا من قبل ، يمكننا تنفيذ البرنامج النصي التالي للقيام بذلك:
y_pred_poly = svclassifier.predict(X_test)
تقييم الخوارزمية
كالعادة ، فإن الخطوة الأخيرة هي إجراء تقييمات على النواة متعددة الحدود. نظرًا لأننا كررنا رمز تقرير التصنيف ومصفوفة الارتباك عدة مرات ، فلنحولها إلى وظيفة display_results
بعد تلقي الاحترام y_test
, y_pred
والعنوان لمصفوفة الارتباك Seaborn مع cm_title
:
def display_results(y_test, y_pred, cm_title): cm = confusion_matrix(y_test,y_pred) sns.heatmap(cm, annot=True, fmt='d').set_title(cm_title) print(classification_report(y_test,y_pred))
الآن ، يمكننا استدعاء الدالة وإلقاء نظرة على النتائج التي تم الحصول عليها باستخدام نواة متعددة الحدود:
cm_title_poly = "Confusion matrix with polynomial kernel"
display_results(y_test, y_pred_poly, cm_title_poly)
يبدو الإخراج كالتالي:
precision recall f1-score support 0 0.69 1.00 0.81 148 1 1.00 0.46 0.63 127 accuracy 0.75 275 macro avg 0.84 0.73 0.72 275
weighted avg 0.83 0.75 0.73 275
يمكننا الآن تكرار نفس الخطوات لنواة Gaussian و sigmoid.
2. نواة جاوس
لاستخدام نواة gaussian ، نحتاج فقط إلى تحديد 'rbf' كقيمة لـ kernel
معلمة فئة SVC:
svc_gaussian = SVC(kernel='rbf', degree=8)
svc_gaussian.fit(X_train, y_train)
عند استكشاف هذه النواة بشكل أكبر ، يمكنك أيضًا استخدام بحث الشبكة لدمجها مع مختلف C
و gamma
القيم.
التنبؤ والتقييم
y_pred_gaussian = svc_gaussian.predict(X_test)
cm_title_gaussian = "Confusion matrix with Gaussian kernel"
display_results(y_test, y_pred_gaussian, cm_title_gaussian)
يبدو إخراج Gaussian kernel SVM كما يلي:
precision recall f1-score support 0 1.00 1.00 1.00 148 1 1.00 1.00 1.00 127 accuracy 1.00 275 macro avg 1.00 1.00 1.00 275
weighted avg 1.00 1.00 1.00 275
3. نواة السيني
أخيرًا ، دعنا نستخدم نواة سينية لتنفيذ Kernel SVM. ألق نظرة على النص التالي:
svc_sigmoid = SVC(kernel='sigmoid')
svc_sigmoid.fit(X_train, y_train)
لاستخدام النواة السينية ، يجب عليك تحديد 'sigmoid' كقيمة لـ kernel
المعلمة من SVC
فئة.
التنبؤ والتقييم
y_pred_sigmoid = svc_sigmoid.predict(X_test)
cm_title_sigmoid = "Confusion matrix with Sigmoid kernel"
display_results(y_test, y_pred_sigmoid, cm_title_sigmoid)
يبدو إخراج Kernel SVM مع نواة Sigmoid كما يلي:
precision recall f1-score support 0 0.67 0.71 0.69 148 1 0.64 0.59 0.61 127 accuracy 0.65 275 macro avg 0.65 0.65 0.65 275
weighted avg 0.65 0.65 0.65 275
مقارنة أداء النواة غير الخطية
إذا قارنا بإيجاز أداء الأنواع المختلفة من النواة غير الخطية ، فقد يبدو أن النواة السينية لديها أدنى المقاييس ، وبالتالي فإن الأداء الأسوأ.
من بين نواة Gaussian ومتعددة الحدود ، يمكننا أن نرى أن نواة Gaussian حققت معدل تنبؤ مثالي بنسبة 100٪ - والذي عادة ما يكون مشبوهًا وقد يشير إلى زيادة في التجهيز ، في حين أن النواة متعددة الحدود أخطأت في تصنيف 68 حالة من الفئة 1.
لذلك ، لا توجد قاعدة صارمة وسريعة بشأن أفضل أداء للنواة في كل سيناريو أو في السيناريو الحالي لدينا دون مزيد من البحث عن المعلمات الفائقة ، وفهم شكل كل وظيفة ، واستكشاف البيانات ، ومقارنة نتائج التدريب والاختبار لمعرفة ما إذا كانت الخوارزمية هو التعميم.
الأمر كله يتعلق باختبار جميع النواة واختيار واحد مع مجموعة من المعلمات وإعداد البيانات التي تعطي النتائج المتوقعة وفقًا لسياق مشروعك.
المضي قدمًا - مشروع يدوي شامل
طبيعتك الفضولية تجعلك ترغب في الذهاب إلى أبعد من ذلك؟ نوصي بالتحقق من مشروع موجه: "توقع عملي لأسعار المنازل - التعلم الآلي في لغة Python".
في هذا المشروع الموجه - ستتعلم كيفية بناء نماذج تعلم الآلة التقليدية القوية بالإضافة إلى نماذج التعلم العميق ، واستخدام مجموعة التعلم وتدريب المتعلمين الفوقيين للتنبؤ بأسعار المنازل من حقيبة من نماذج Scikit-Learn و Keras.
باستخدام Keras ، واجهة برمجة التطبيقات للتعلم العميق المبنية على قمة Tensorflow ، سنقوم بتجربة البنى وإنشاء مجموعة من النماذج المكدسة وتدريب المتعلم الفوقي الشبكة العصبية (نموذج المستوى الأول) لمعرفة سعر المنزل.
يعد التعلم العميق أمرًا مذهلاً - ولكن قبل اللجوء إليه ، يُنصح أيضًا بمحاولة حل المشكلة بأساليب أبسط ، مثل باستخدام التعلم الضحل الخوارزميات. سيعتمد أداء خط الأساس لدينا على أ الانحدار العشوائي للغابات الخوارزمية. بالإضافة إلى ذلك - سنستكشف إنشاء مجموعات من النماذج من خلال Scikit-Learn عبر تقنيات مثل التعبئة و تصويت.
هذا مشروع شامل ، ومثل جميع مشاريع التعلم الآلي ، سنبدأ بـ - بـ تحليل البيانات استكشافية، تليها معالجة البيانات و اخيرا مبنى ضحل و نماذج التعلم العميق لتتناسب مع البيانات التي اكتشفناها ونظفناها سابقًا.
وفي الختام
في هذه المقالة ، قمنا بعمل ملخص سريع عن SVMs ، ودرسنا حول خدعة kernel وقمنا بتطبيق نكهات مختلفة من SVMs غير الخطية.
أقترح عليك تنفيذ كل نواة والاستمرار في المضي قدمًا. يمكنك استكشاف الرياضيات المستخدمة في إنشاء كل من الحبات المختلفة ، ولماذا تم إنشاؤها والاختلافات المتعلقة بمعلماتها الفائقة. بهذه الطريقة ، ستتعرف على التقنيات ونوع النواة الأفضل للتطبيق اعتمادًا على السياق والبيانات المتاحة.
سيساعدك الفهم الواضح لكيفية عمل كل نواة ومتى تستخدمها بالتأكيد في رحلتك. اسمحوا لنا أن نعرف كيف يسير التقدم وترميز سعيد!
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- بلاتوبلوكشين. Web3 Metaverse Intelligence. تضخيم المعرفة. الوصول هنا.
- سك المستقبل مع أدرين أشلي. الوصول هنا.
- المصدر https://stackabuse.com/implementing-other-svm-flavors-with-pythons-scikit-learn/
- :لديها
- :يكون
- :ليس
- :أين
- $ UP
- 1
- 20
- 67
- 8
- 84
- a
- ماهرون
- من نحن
- حوله
- وفقا
- دقة
- تحقق
- في الواقع
- وبالإضافة إلى ذلك
- تؤثر
- بعد
- ملاحظه
- خوارزمية
- خوارزمية
- خوارزميات
- الكل
- تخصيص
- سابقا
- أيضا
- بالرغم ان
- دائما
- مدهش
- an
- و
- API
- التقديم
- نهج
- هي
- البند
- AS
- At
- متاح
- حقيبة
- مصرف
- على أساس
- خط الأساس
- BE
- لان
- يصبح
- قبل
- البداية
- وراء
- يجري
- أقل من
- أفضل
- ما بين
- أكبر
- الحدود
- على حد سواء
- الحدود
- موجز
- نساعدك في بناء
- بنيت
- لكن
- by
- حساب
- دعوة
- تسمى
- CAN
- لا تستطيع
- حقيبة
- التغييرات
- تدقيق
- اختار
- اختيار
- فئة
- فصول
- تصنيف
- واضح
- عن كثب
- أقرب
- الكود
- مجموعة
- دمج
- قارن
- مقارنة
- إكمال
- مجمع
- اختتام
- ارتباك
- نظر
- نظرت
- سياق الكلام
- المقابلة
- استطاع
- مغطى
- خلق
- خلق
- خلق
- عبر
- حالياًّ
- البيانات
- نقاط البيانات
- تحضير البيانات
- القرار
- عميق
- التعلم العميق
- أعمق
- قطعا
- الدرجة العلمية
- اعتمادا
- مستمد
- وصف
- التفاصيل
- تفاصيل
- فرق
- الخلافات
- مختلف
- بعد
- الأبعاد
- ناقش
- مسافة
- do
- كل
- في وقت سابق
- النهائي إلى نهاية
- ينتهي
- خطأ
- التقييمات
- كل
- مثال
- تنفيذ
- متوقع
- تجربة
- تفسير
- اكتشف
- استكشاف
- استكشاف
- FAST
- المميزات
- قليل
- الشكل
- نهائي
- أخيرا
- العثور على
- الاسم الأول
- تناسب
- مرن
- تركز
- يتبع
- متابعيك
- في حالة
- غابة
- النموذج المرفق
- أربعة
- تبدأ من
- وظيفة
- إضافي
- العلاجات العامة
- دولار فقط واحصل على خصم XNUMX% على جميع
- بوابة
- منح
- Go
- الذهاب
- شبكة
- توجيه
- دليل
- تشابك الايدى
- سعيد
- الثابت
- يملك
- مساعدة
- هنا
- أعلى
- منـزل
- تحوم
- كيفية
- كيفية
- لكن
- HTML
- HTTPS
- اي كون
- فكرة
- تنفيذ
- نفذت
- تحقيق
- أهمية
- in
- شامل
- في ازدياد
- تشير
- لا نهاية
- مثل
- مصلحة
- وكتابة مواضيع مثيرة للاهتمام
- إلى
- المُقدّمة
- المشاركة
- IT
- انها
- نفسها
- رحلة
- JPG
- احتفظ
- keras
- نوع
- علم
- معرفة
- تعلم
- تعلم
- LG
- المكتبات
- المكتبة
- يكمن
- مثل
- خط
- خطوط
- القليل
- بحث
- تبدو
- آلة
- آلة التعلم
- الآلات
- الماكرو
- صنع
- جعل
- يصنع
- القيام ب
- كثير
- رسم خريطة
- هامش
- رياضي
- الرياضيات
- matplotlib
- مصفوفة
- يزيد
- مايو..
- المذكورة
- مجرد
- طرق
- متري
- المقاييس
- ربما
- نموذج
- عارضات ازياء
- تم التعديل
- الأكثر من ذلك
- أكثر
- متعدد
- غامض
- الطبيعة
- ضروري
- حاجة
- شبكة
- الشبكة العصبية
- التالي
- ملاحظة
- الآن
- نمباي
- تحصل
- تم الحصول عليها
- of
- on
- ONE
- فقط
- الأمثل
- or
- طلب
- منظم
- أخرى
- لنا
- الناتج
- الباندا
- المعلمة
- المعلمات
- جزء
- pass
- أداء
- ينفذ
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- بلايستشن
- نقاط
- قوي
- عملية
- دقة
- تنبأ
- تنبؤ
- تنبؤات
- إعداد
- سابق
- سابقا
- السعر
- التنبؤ بالأسعار
- الأسعار
- التسعير
- المشكلة
- عملية المعالجة
- التقدّم
- تنفيذ المشاريع
- مشروع ناجح
- بايثون
- سريع
- معدل
- بدلا
- ربف
- الوصول
- عرض
- حقيقي
- خلاصة
- يستلم
- نوصي
- بخصوص
- تذكر
- كرر
- متكرر
- تقرير
- REST
- النتائج
- حلقة
- قاعدة
- تشغيل
- s
- نفسه
- سيناريو
- تعلم الحروف
- سيبورن
- بحث
- البحث
- القسم
- بذرة
- رؤية
- يبدو
- اختيار
- مستقل
- مسلسلات
- عدة
- شادو
- الشكل
- أظهرت
- الاشارات
- منذ
- So
- الصلبة
- حل
- بعض
- تهجئه
- ستاكابوز
- مرصوصة
- معيار
- المعايير
- بداية
- إحصائيات
- خطوة
- خطوات
- قلة النوم
- مستقيم
- مدروس
- هذه
- الدعم
- مشكوك فيه
- SVG
- جدول
- أخذ
- الهدف
- تقنيات
- tensorflow
- تجربه بالعربي
- الاختبار
- أن
- •
- من مشاركة
- منهم
- هناك.
- هم
- تفكير
- الثالث
- ثلاثة
- عبر
- الوقت
- مرات
- عنوان
- إلى
- تيشرت
- المواضيع
- تقليدي
- قطار
- متدرب
- قادة الإيمان
- تحول
- انتقال
- صحيح
- أنواع
- نموذجي
- فهم
- فهم
- us
- تستخدم
- حالة الاستخدام
- مستعمل
- استخدام
- عادة
- الاستفادة من
- التحقق من صحة
- قيمنا
- القيم
- Ve
- الإصدار
- بواسطة
- طريق..
- we
- حسن
- كان
- ابحث عن
- ما هي تفاصيل
- سواء
- التي
- في حين
- لماذا
- ويكيبيديا
- سوف
- مع
- بدون
- وون
- عامل
- أعمال
- أسوأ
- سوف
- X
- أنت
- حل متجر العقارات الشامل الخاص بك في جورجيا
- زفيرنت