التطوير باستخدام واجهة برمجة تطبيقات تصور البيانات#

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

نظرة عامة على واجهة برمجة تطبيقات تصور البيانات#

يتم تغليف هذا المنطق في كائن عرض حيث يتم تخزين البيانات المحسوبة ويتم تصور البيانات في أسلوب plot. يحتوي أسلوب __init__ لكائن العرض على البيانات اللازمة لإنشاء التصور فقط. يأخذ أسلوب plot معلمات تتعلق فقط بالتصور، مثل محاور matplotlib. سيخزن أسلوب plot فناني matplotlib كسمات تسمح بضبط النمط من خلال كائن العرض. يجب أن تُحدد فئة Display أسلوب فئة واحد أو كليهما: from_estimator و from_predictions. تسمح هذه الأساليب بإنشاء كائن Display من المقدر وبعض البيانات أو من القيم الحقيقية والمتوقعة. بعد هذه أساليب الفئة التي تُنشئ كائن العرض بالقيم المحسوبة، ثم استدعاء أسلوب plot للعرض. لاحظ أن أسلوب plot يُحدد السمات المتعلقة بـ matplotlib، مثل فنان الخط. يسمح هذا بالتخصيصات بعد استدعاء أسلوب plot.

على سبيل المثال، يُحدد RocCurveDisplay الأساليب والسمات التالية:

class RocCurveDisplay:
    def __init__(self, fpr, tpr, roc_auc, estimator_name):
        ...
        self.fpr = fpr
        self.tpr = tpr
        self.roc_auc = roc_auc
        self.estimator_name = estimator_name

    @classmethod
    def from_estimator(cls, estimator, X, y):
        # الحصول على التوقعات
        y_pred = estimator.predict_proba(X)[:, 1]
        return cls.from_predictions(y, y_pred, estimator.__class__.__name__)

    @classmethod
    def from_predictions(cls, y, y_pred, estimator_name):
        # إجراء حساب ROC من y و y_pred
        fpr, tpr, roc_auc = ...
        viz = RocCurveDisplay(fpr, tpr, roc_auc, estimator_name)
        return viz.plot()

    def plot(self, ax=None, name=None, **kwargs):
        ...
        self.line_ = ...
        self.ax_ = ax
        self.figure_ = ax.figure_

اقرأ المزيد في منحنى ROC مع واجهة برمجة التطبيقات للتصور و دليل المستخدم.

تصور البيانات باستخدام محاور متعددة#

تدعم بعض أدوات تصور البيانات مثل from_estimator و PartialDependenceDisplay تصور البيانات على محاور متعددة. يتم دعم سيناريوهين مختلفين:

1. إذا تم تمرير قائمة محاور، فسيُحدد plot ما إذا كان عدد المحاور متوافقًا مع عدد المحاور الذي يتوقعه ثم يرسم على تلك المحاور. 2. إذا تم تمرير محور واحد، فإن هذا المحور يُحدد مساحة لوضع محاور متعددة فيها. في هذه الحالة، نقترح استخدام ~matplotlib.gridspec.GridSpecFromSubplotSpec الخاص بـ matplotlib لتقسيم المساحة

import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpecFromSubplotSpec

fig, ax = plt.subplots()
gs = GridSpecFromSubplotSpec(2, 2, subplot_spec=ax.get_subplotspec())

ax_top_left = fig.add_subplot(gs[0, 0])
ax_top_right = fig.add_subplot(gs[0, 1])
ax_bottom = fig.add_subplot(gs[1, :])

افتراضيًا، تكون الكلمة الرئيسية ax في plot هي None. في هذه الحالة، يتم إنشاء المحور الفردي ويتم استخدام واجهة برمجة تطبيقات gridspec لإنشاء المناطق المراد تصور البيانات فيها.

انظر، على سبيل المثال، from_estimator الذي يرسم خطوطًا وخطوط كفاف متعددة باستخدام واجهة برمجة التطبيقات هذه. يتم حفظ المحور الذي يُحدد المربع المحيط في سمة bounding_ax_. يتم تخزين المحاور الفردية التي تم إنشاؤها في ndarray axes_، المطابق لموضع المحاور على الشبكة. يتم تعيين المواضع التي لا يتم استخدامها إلى None. علاوة على ذلك، يتم تخزين فناني matplotlib في lines_ و contours_ حيث يكون المفتاح هو الموضع على الشبكة. عند تمرير قائمة محاور، يكون axes_ و lines_ و contours_ عبارة عن ndarray أحادي الأبعاد يتوافق مع قائمة المحاور التي تم تمريرها.