إنشاء بيانات اصطناعية واقعية باستخدام مكتبة SDV: دليل خطوة بخطوة

تُعاني البيانات الواقعية غالبًا من مشاكل التكلفة، والفوضى، والقيود المفروضة من قواعد الخصوصية. تُقدم البيانات الاصطناعية حلاً لهذه المشاكل، وقد أصبحت تُستخدم على نطاق واسع في العديد من التطبيقات، مثل:

  • نماذج اللغات الكبيرة (LLMs): تدريبها على نصوص مُولدة اصطناعياً.
  • أنظمة مكافحة الاحتيال: محاكاة الحالات الحدية.
  • نماذج الرؤية الحاسوبية: التدريب المسبق على صور اصطناعية.

تُعد مكتبة Synthetic Data Vault (SDV) مفتوحة المصدر و مكتوبة بلغة بايثون، وهي أداة قوية لإنشاء بيانات جدولية واقعية باستخدام تقنيات تعلم الآلة. تتعلم هذه المكتبة الأنماط من البيانات الواقعية، وتُنشئ بيانات اصطناعية عالية الجودة تُناسب المشاركة الآمنة، والاختبار، وتدريب النماذج. سنستعرض في هذا الدليل خطوات إنشاء البيانات الاصطناعية باستخدام SDV.

1. تثبيت المكتبة وتجهيز البيانات

أولاً، نقوم بتثبيت مكتبة SDV باستخدام الأمر التالي:

pip install sdv

بعد ذلك، نقوم باستيراد الوحدات اللازمة والاتصال بالمجلد المحلي الذي يحتوي على ملفات البيانات. نقرأ ملفات CSV من المجلد المحدد ونخزنها كـ DataFrames في مكتبة Pandas. في هذه الحالة، نصل إلى مجموعة البيانات الرئيسية باستخدام data['data'].

from sdv.io.local import CSVHandler
connector = CSVHandler()
FOLDER_NAME = '.' # إذا كانت البيانات في نفس الدليل
data = connector.read(folder_name=FOLDER_NAME)
salesDf = data['data']

2. تعريف بيانات وصفية (Metadata)

نقوم باستيراد البيانات الوصفية لمجموعة البيانات. تُخزن هذه البيانات في ملف JSON، وتُخبر SDV بكيفية تفسير بياناتك. تتضمن هذه البيانات:

  • اسم الجدول.
  • المفتاح الأساسي.
  • نوع بيانات كل عمود (مثل: فئوي، رقمي، تاريخ، إلخ).
  • التنسيقات الاختيارية للأعمدة، مثل أنماط التواريخ أو أنماط المعرفات.
  • علاقات الجداول (لإعدادات الجداول المتعددة).

إليك مثال على تنسيق ملف metadata.json:

{
  "METADATA_SPEC_VERSION": "V1",
  "tables": {
    "your_table_name": {
      "primary_key": "your_primary_key_column",
      "columns": {
        "your_primary_key_column": {
          "sdtype": "id",
          "regex_format": "T[0-9]{6}"
        },
        "date_column": {
          "sdtype": "datetime",
          "datetime_format": "%d-%m-%Y"
        },
        "category_column": {
          "sdtype": "categorical"
        },
        "numeric_column": {
          "sdtype": "numerical"
        }
      },
      "column_relationships": []
    }
  }
}

بدلاً من ذلك، يمكننا استخدام مكتبة SDV لاستنتاج البيانات الوصفية تلقائيًا باستخدام:

from sdv.metadata import Metadata
metadata = Metadata.detect_from_dataframes(data)

لكن من المهم مراجعة البيانات الوصفية المُستخلصة وتحديثها في حال وجود أي اختلافات.

3. توليد البيانات الاصطناعية

بعد تجهيز البيانات الوصفية ومجموعة البيانات الأصلية، يمكننا استخدام SDV لتدريب نموذج وتوليد بيانات اصطناعية. يتعلم النموذج بنية وأنماط مجموعة البيانات الأصلية، ويستخدم هذه المعرفة لإنشاء سجلات اصطناعية. يمكنك التحكم في عدد الصفوف التي سيتم إنشاؤها باستخدام وسيطة num_rows.

from sdv.single_table import GaussianCopulaSynthesizer
synthesizer = GaussianCopulaSynthesizer(metadata)
synthesizer.fit(data=salesDf)
synthetic_data = synthesizer.sample(num_rows=10000)

4. تقييم جودة البيانات الاصطناعية

توفر مكتبة SDV أدوات لتقييم جودة البيانات الاصطناعية بمقارنتها بمجموعة البيانات الأصلية. يمكننا بدءًا بتوليد تقرير للجودة:

from sdv.evaluation.single_table import evaluate_quality
quality_report = evaluate_quality(salesDf, synthetic_data, metadata)

كما يمكننا تصور كيفية مقارنة البيانات الاصطناعية بالبيانات الحقيقية باستخدام أدوات الرسم البياني المُدمجة في SDV. على سبيل المثال، يمكننا استخدام get_column_plot لإنشاء مخططات مقارنة لأعمدة محددة:

from sdv.evaluation.single_table import get_column_plot
fig = get_column_plot(real_data=salesDf, synthetic_data=synthetic_data, column_name='Sales', metadata=metadata)
fig.show()

يمكننا أيضًا استخدام مكتبة matplotlib لإنشاء مقارنات أكثر تفصيلاً، مثل تصور اتجاهات المبيعات الشهرية المتوسطة عبر كلتا مجموعتي البيانات.

5. استنتاج

في هذا الدليل، قمنا بعرض كيفية تحضير بياناتك وبياناتك الوصفية لتوليد بيانات اصطناعية باستخدام مكتبة SDV. من خلال تدريب نموذج على مجموعة بياناتك الأصلية، يمكن لـ SDV إنشاء بيانات اصطناعية عالية الجودة تعكس بدقة أنماط وتوزيعات البيانات الحقيقية. كما قمنا باستعراض كيفية تقييم وتصور البيانات الاصطناعية، مما يؤكد أن المقاييس الرئيسية مثل توزيعات المبيعات والاتجاهات الشهرية تظل متسقة. تُقدم البيانات الاصطناعية طريقة فعالة للتغلب على تحديات الخصوصية والتوفر مع تمكين عمليات تحليل البيانات وتدريب نماذج تعلم الآلة.

المصدر: MarkTechPost