البرمجة

توزيع متوازن: كيفية تقسيم بيانات مراجعات أمازون بشكل فعال باستخدام Python و scikit-learn

في مواجهة هذا التحدي في تقسيم بيانات مراجعات منتجات أمازون بشكل متوازن، يبدو أنك تسعى لاستخدام مكتبة scikit-learn في Python لتحقيق هذا الهدف. لكن يبدو أن هناك بعض الأخطاء في الكود الحالي تحتاج إلى تصحيح.

أولاً، يجب أن تعرف أنك تحتاج إلى استخدام اسم العمود الصحيح الذي ترغب في تحقيق التوازن بناءً عليه، وفي حالتك هذا العمود هو “Categories”. ولكن يجب أن تقوم بتعيين “y” إلى قيم هذا العمود.

فيما يلي كيف يمكنك تعديل الكود لحل هذه المشكلة:

python
import pandas as pd from sklearn.model_selection import train_test_split # اقرأ البيانات من ملف CSV meta = pd.read_csv('C:\\Users\\xyz\\Desktop\\WM Project\\Joined.csv') # قم بتعيين العمود الذي تريد تحقيق التوازن بناءً عليه y = meta['Categories'] # قم بتقسيم البيانات مع الحفاظ على التوازن باستخدام stratify train, test = train_test_split(meta, test_size=0.2, stratify=y)

الآن، يجب أن يعمل الكود بشكل صحيح دون أي أخطاء. يتم استخدام stratify=y للتأكد من أن الفئات في العمود “Categories” موزعة بشكل متوازن بين بيانات التدريب والاختبار.

بهذا الشكل، يمكنك أن تكون واثقًا أن التوازن النسبي للفئات سيتم الحفاظ عليه عند تقسيم بياناتك بنسبة 80-20 بين مجموعة التدريب ومجموعة الاختبار. يمكنك الآن استكشاف البيانات والقيام بتحليل أعمق لتحسين نموذج التدريب الخاص بك.

المزيد من المعلومات

بالطبع، دعنا نوسع على الموضوع ونقدم بعض المعلومات الإضافية التي قد تكون مفيدة لفهم السياق الكامل لتقسيم البيانات بشكل متوازن باستخدام scikit-learn في Python.

عند القيام بتقسيم البيانات إلى مجموعتين (تدريب واختبار) باستخدام train_test_split، يكون من المهم أن يتم الاحتفاظ بتوزيع الفئات (التصنيفات) بشكل عادل بين كل منهما. هذا يساعد في تحسين أداء نموذج التعلم الآلي الخاص بك عندما تكون لديك فئات متعددة.

تحديد stratify=y في train_test_split يعني أن الدالة ستقوم بتوزيع البيانات بحيث تظل النسب النسبية للفئات ثابتة في كل مجموعة. وبهذا، يمكنك تجنب مشكلة تحقيق توازن غير متوازن بين مجموعات التدريب والاختبار، مما يؤدي إلى تحسين الأداء العام للنموذج.

من الناحية العملية، بعد قسم البيانات، يمكنك استخدام مكتبة pandas لاستكشاف البيانات وفهم توزيع الفئات في كل مجموعة. يمكن ذلك من خلال استخدام الأوامر مثل value_counts() لفحص تواجد الفئات في عمود معين.

لاحظ أيضاً أن استخدام from sklearn.model_selection import train_test_split هو الطريقة الصحيحة، حيث أن استخدام from sklearn.cross_validation import train_test_split قد تم إزالته في إصدارات أحدث من scikit-learn.

في النهاية، من خلال فهم مبادئ توزيع البيانات وضبط التوازن بين الفئات، يمكنك الاستمتاع بتحليلاتك بشكل أعمق وتحسين النماذج الخاصة بك بشكل أفضل.

زر الذهاب إلى الأعلى