تولّد ADASYN أمثلة صناعية للفئة الأقل كما تفعل SMOTE، لكنها توزّعها بشكل غير متساوٍ: فتُنشئ نقاطًا أكثر حول عينات الفئة الأقل المحاطة بجيران من الفئة الأكبر، وأقل حول العينات المستقرة أصلًا داخل منطقتها. والحدس وراء ذلك أن النموذج لا يحتاج مساعدة حيث يكون مصيبًا بالفعل. والآلية نفسها هي مصدر خطرها الرئيسي، لأن نقطة موسومة خطأً تكون بحكم التعريف محاطة بالفئة الأخرى، فتركّز ADASYN التوليد على الأخطاء تحديدًا.
ADASYN هي SMOTE مضافًا إليها ترجيح بالصعوبة. وهذا الترجيح يفيد حين يكون حدّ الفصل صعبًا فعلًا، ويضرّ حين يكون الحدّ مشوَّشًا — والتمييز بينهما هو العمل الحقيقي.
ما المشكلة التي يعالجها هذا الحل؟
يدرّب برنامج فحص شبكية العين مصنّفًا لحالات تستدعي الإحالة. ونحو 6% من الصور تستدعي الإحالة. رفعت SMOTE الاستدعاء إلى مستوى قابل للاستخدام، لكن الأخطاء المتبقية تتجمّع في موضع واحد: الحالات الخفيفة التي تبدو قريبة جدًا من السليمة.
وتلك الصور الحدّية هي المهمة سريريًا. فالحالة المتقدمة الواضحة سهلة على النموذج وعلى المُقيّم معًا؛ أما الحالة الهامشية فهي حيث يكسب برنامج الفحص قيمته أو يفقدها. والزيادة المنتظمة توزّع النقاط الصناعية بالتساوي على الفئة الأقل، فتنفق معظم جهدها في المنطقة التي يتقنها النموذج أصلًا.
ويريد الفريق تركيز التوليد حيث يكون المصنّف أضعف — وهو بالضبط ما صُمّمت له ADASYN، وبالضبط سبب وجوب اقترانها بفحص جادّ لجودة التصنيفات أولًا.
كيف يعمل الحل؟
تقيس ADASYN لكل عينة من الفئة الأقل عدد جيرانها الأقرب المنتمين إلى الفئة الأكبر. وتصبح تلك النسبة درجةَ صعوبة.
ثم توزّع ميزانية العينات الصناعية بما يتناسب مع تلك الدرجات. فالنقطة المحاطة بجيران من الفئة الأكبر تتلقى رفقاء صناعيين كثيرين، والمحاطة بأبناء فئتها تتلقى القليل أو لا شيء.
أما التوليد نفسه فهو الاستيفاء ذاته الذي تستخدمه SMOTE. والفارق كله في عدد النقاط المُنشأة حول كل بذرة، لا في كيفية إنشاء كل نقطة.
ولأن الصعوبة وسوء التصنيف يبدوان متطابقين من وجهة نظر الخوارزمية، ينبغي أن يسبق تدقيقُ التصنيفات على العينات الأعلى صعوبةً أي تشغيل لـ ADASYN.
- 1قياس الاختلال احسب إجمالي العينات الصناعية اللازمة لبلوغ نسبة الفئات المطلوبة.
- 2تقييم كل نقطة من الفئة الأقل لكل عينة، أوجد أقرب k جيران عبر مجموعة البيانات كاملةً واحسب نسبة المنتمين منهم إلى الفئة الأكبر.
- 3تطبيع الدرجات اقسم كل درجة على مجموع الدرجات حتى تشكّل توزيعًا على عينات الفئة الأقل.
- 4توزيع الميزانية اضرب ذلك التوزيع في العدد الإجمالي للعينات الصناعية المطلوبة، فينتج عدد التوليد لكل بذرة.
- 5الاستيفاء ولّد لكل بذرة عددها المخصص من النقاط بالاستيفاء نحو جيران مختارين عشوائيًا، تمامًا كما تفعل SMOTE.
البنية المرجعية
تشغل ADASYN الموضع نفسه من المسار الذي تشغله SMOTE، لكنها تضيف اعتمادًا على جودة التصنيفات لا تحمله SMOTE بالدرجة ذاتها.
| Layer | What it contains |
|---|---|
| طبقة جودة التصنيفات | تُراجَع قبل التوليد. فالعينات عالية الصعوبة هي الأرجح أن تكون موسومة خطأً والأكثر تضخيمًا. |
| حدّ التقسيم | تُنشأ الطيّات قبل أي إعادة معاينة، كما هي الحال مع كل مولّد عينات. |
| طيّة التدريب | تُقاس الصعوبة وتوزَّع النقاط الصناعية داخل الطيّة وحدها. |
| التقييم | يُحتفظ بالتوزيع الأصلي، مع تحليل الخطأ لكل منطقة لتأكيد تحسّن حدّ الفصل فعليًا. |
خيارات النشر: البيانات السريرية والتأمينية لا تستطيع عادةً مغادرة بيئة الجهة، لذا تجري مراجعة التصنيفات وتشغيل التدريب معًا داخل النطاق المعتمد.
القدرات الرئيسية
تقييم الصعوبة والمراجعة
قائمة مرتّبة بالعينات التي ستضخّمها ADASYN أكثر من غيرها، تُنتَج قبل التوليد لا بعده.
availableتدقيق تصنيفات الحالات الصعبة
جولة تقييم ثانية على العينات الأعلى صعوبةً حتى تُصحَّح الضوضاء بدل مضاعفتها.
availableتحليل الخطأ في منطقة الحدّ
الإبلاغ عن الأداء بشكل منفصل للحالات الحدّية والحالات الواضحة، لا مجمّعًا في درجة واحدة.
custom developmentمقارنة مولّدات العينات
مقارنة SMOTE وADASYN وأوزان الفئات على طيّات متطابقة مع الإبلاغ عن التباين.
custom developmentالتكاملات
ADASYN مكوّن في مسار التدريب، لكن نقطة تكامله الحقيقية هي منصة الوسم، لأن جودة مخرجاتها تعتمد على جودة التصنيفات أكثر من معظم المولّدات.
| النظام | نقطة التكامل والبيانات المتبادلة | الاتجاه |
|---|---|---|
| منصة الوسم | توجيه العينات عالية الصعوبة لرأي ثانٍ قبل تضخيمها. ← Label Noise: The Accuracy Ceiling Nobody Put There Deliberately | bi-directional |
| مسار التدريب | إدارة المولّد ومعاملاته بالإصدارات حتى تُعيد أي إعادة تدريب التوزيع نفسه. ← SMOTE: Inventing Minority Examples Without Copying Them | bi-directional |
| منظومة التقييم | الإبلاغ عن الخطأ لكل نطاق صعوبة حتى يمكن تأكيد التحسّن المقصود. | bi-directional |
حالات الاستخدام والقطاعات
برامج الفحص الطبي
الحالات الحدّية تحمل القيمة السريرية وهي بالضبط حيث تستثمر الزيادة المنتظمة أقل مما ينبغي.
فرز مطالبات التأمين
المطالبات الملتبسة تقع قرب الحدّ، أما الواضحة فتعالجها القواعد أصلًا.
تقييم الاستحقاق الحكومي
الحالات الطرفية تقود التظلّمات، فأداء الحدّ أهم من الدقة الإجمالية.
مخاطر الائتمان
المتقدّمون الهامشيون هم حيث يكون للقرار أثر تجاري وحيث يكون النموذج أضعف.
اعتبارات الإمارات والخليج
تخضع البيانات الصحية والتأمينية في الإمارات والخليج عادةً لقيود إقامة ولموافقات قطاعية، وهو ما يستبعد إرسالها إلى خدمة معاينة أو AutoML مُدارة. وينبغي التخطيط لمراجعة التصنيفات وتشغيل التدريب معًا داخل البيئة المعتمدة للجهة. وحيث يلزم رأي تقييم ثانٍ، أكّد مسبقًا من يُسمح له بالاطلاع على الصور أو السجلات، لأن تدقيق التصنيفات الذي تعتمد عليه ADASYN هو نفسه حدث وصول إلى البيانات.
منهجية التنفيذ
- 1قياس الصعوبة أولًا احسب نسب الجيران وانظر في التوزيع قبل تقرير ما إذا كانت ADASYN مناسبة أصلًا.
- 2تدقيق أصعب العينات راجع النقاط الأعلى ترتيبًا يدويًا. صحّح أو احذف التصنيفات الخاطئة قبل التوليد.
- 3المقارنة مع SMOTE شغّل الاثنين على طيّات متطابقة وأبلغ عن الانحراف المعياري إلى جانب المتوسط.
- 4التحليل حسب المنطقة أكّد ظهور التحسّن في نطاق الحدّ، فهو السبب الوحيد لتفضيل ADASYN.
- 5تثبيت المعاملات سجّل k ونسبة أخذ العينات والبذرة؛ فتوزيع ADASYN حسّاس لها جميعًا.
الأمن وخيارات النشر
تدقيق التصنيفات الذي تعتمد عليه ADASYN يتطلب اطلاعًا بشريًا على السجلات الأصلية، وهو للبيانات السريرية أو التأمينية حدث خاضع للرقابة. سجّل من راجع أي عينات، وأبقِ المراجعة داخل البيئة المعتمدة، وتعامل مع النقاط الصناعية الناتجة كبيانات شخصية مشتقة تحمل تصنيف مصدرها.
مثال عملي
ثلاث صور من الفئة الأقل، وk = 5 جيران لكل منها، وميزانية صناعية إجمالية قدرها 100 نقطة.
- الصورة أ — في عمق منطقة الفئة الأقل. جار واحد من خمسة ينتمي إلى الفئة الأكبر. r = 0.2.
- الصورة ب — قرب حدّ الفصل. ثلاثة من خمسة ينتمون إلى الفئة الأكبر. r = 0.6.
- الصورة ج — شبه محاطة. أربعة من خمسة ينتمون إلى الفئة الأكبر. r = 0.8.
- التطبيع. المجموع = 1.6، فتكون الحصص 0.125 و0.375 و0.500.
- التوزيع. تحصل أ على نحو 13 نقطة صناعية، وب على نحو 37، وج على نحو 50.
نصف الميزانية كاملةً يذهب إلى صورة واحدة. فإن كانت ج حالة حدّية صعبة فعلًا، فهذا صحيح تمامًا. وإن كانت قد صُنّفت خطأً، تكون ADASYN قد بنت خمسين مثالًا صناعيًا لخطأ — ولهذا فإن العينات الأعلى في قيمة r هي ما يجب فحصه قبل التشغيل.
مثال برمجي
النمط المفيد هو فحص درجات الصعوبة قبل توليد أي شيء، ثم مقارنة ADASYN بـ SMOTE على الطيّات نفسها.
import numpy as np
from sklearn.neighbors import NearestNeighbors
from sklearn.model_selection import StratifiedKFold, cross_val_score
from sklearn.linear_model import LogisticRegression
from imblearn.over_sampling import ADASYN, SMOTE
from imblearn.pipeline import Pipeline
def difficulty_scores(X, y, minority_label=1, k=5):
"""Fraction of each minority point's neighbours that are majority class."""
nn = NearestNeighbors(n_neighbors=k + 1).fit(X)
idx = np.where(y == minority_label)[0]
_, neigh = nn.kneighbors(X[idx])
neigh = neigh[:, 1:] # drop the point itself
return idx, (y[neigh] != minority_label).mean(axis=1)
idx, r = difficulty_scores(X_train, y_train)
hardest = idx[np.argsort(-r)][:20]
print("inspect these labels first:", hardest.tolist())
print("difficulty range:", r.min().round(2), "to", r.max().round(2))
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)
for name, sampler in [("smote", SMOTE(random_state=0)), ("adasyn", ADASYN(random_state=0))]:
pipe = Pipeline([("s", sampler), ("clf", LogisticRegression(max_iter=2000))])
s = cross_val_score(pipe, X_train, y_train, cv=cv, scoring="average_precision")
print(f"{name}: PR-AUC {s.mean():.3f} +/- {s.std():.3f}")قائمة بأصعب عشرين عينة من الفئة الأقل لمراجعتها يدويًا، ومدى درجات الصعوبة، ومقارنة متكافئة لـ PR-AUC بين SMOTE وADASYN. وإذا تفوّقت ADASYN بفارق أقل من انحرافها المعياري، فالفارق غير حقيقي.
فحوصات تشخيصية
- ارسم توزيع درجات الصعوبة. فتجمّع كبير عند r قريبة من 1.0 يشير إلى ضوضاء تصنيف لا إلى حدّ صعب.
- افحص يدويًا أعلى عشرين عينة في الدرجة. فإن كان عدد منها موسومًا خطأً بوضوح، صحّح التصنيفات قبل تشغيل ADASYN.
- قارن الأداء لكل نطاق. فإن حسّنت ADASYN الإجمالي دون نطاق الحدّ، فهي لا تفعل ما اخترتها من أجله.
- أبلغ عن الانحراف المعياري عبر الطيّات. ففي الفئات الأقل الصغيرة كثيرًا ما يقع تفوّق ADASYN على SMOTE داخل الضوضاء.
- تحقّق من وجود نقاط بلا أي جار من الفئة الأقل؛ فقد تُخفق ADASYN أو تتصرف بشكل شاذّ مع القيم المعزولة.
متى تستخدم هذه التقنية
- الأخطاء المتبقية تتجمّع قرب حدّ الفصل بدل انتشارها بالتساوي.
- رُوجعت التصنيفات وثبت أن صعوبة الحدّ حقيقية لا ناتجة عن ضوضاء وسم.
- الفئة الأقل كبيرة بما يكفي لتكون نسب الجيران ذات معنى.
- أداء منطقة الحدّ هو ما يهم العمل فعليًا.
متى لا تستخدمها
- جودة التصنيفات مجهولة أو معروفة بالضعف — فستركّز ADASYN التوليد على الأخطاء.
- الفئة الأقل تحوي قيمًا شاذة حقيقية نادرة لكنها غير مفيدة؛ فستجتذب حصة كبيرة من الميزانية.
- لم تُجرَّب SMOTE بعد، إذ إن ميزة ADASYN الوحيدة هي الترجيح وتحتاج خط الأساس لرؤيته.
- الفئة الأقل صغيرة جدًا، حيث يكون تقدير الصعوبة أكثر تشويشًا من أن يُوزَّع على أساسه.
القيود والمتطلبات المسبقة
- لا تستطيع ADASYN التمييز بين مثال صعب ومثال خاطئ، وتعامل كليهما كأنه يستحق التضخيم.
- تتجاهل توزيع الفئة الأكبر أثناء الاستيفاء، فقد تقع النقاط الصناعية داخل منطقة الفئة الأكبر.
- التوزيع حسّاس لقيمة k؛ فتغييرها يعيد توزيع الميزانية بشكل كبير.
- في الفئات الأقل الصغيرة أو المتفرقة يكون تقدير الصعوبة غير مستقر وتختفي الميزة على SMOTE.
ADASYN مقابل SMOTE
الاستيفاء نفسه وتوزيع مختلف. والفارق لا يهم إلا حين تكون الأخطاء ساكنة عند حدّ الفصل.
| الجانب | SMOTE | ADASYN |
|---|---|---|
| موضع التوليد | بالتساوي عبر عينات الفئة الأقل | مرجّح نحو الصعبة منها |
| الحساسية لضوضاء التصنيف | متوسطة | عالية — الضوضاء تجتذب الميزانية |
| أفضل حالة | منطقة فئة أقل متفرقة على اتساعها | أخطاء متركّزة عند الحدّ |
| السلوك مع القيم الشاذة | يعاملها كأي نقطة أخرى | يفرط في الاستثمار في المعزولة منها |
| الشرط المسبق | خصائص مستمرة | خصائص مستمرة وتصنيفات مُدقَّقة |
شغّل SMOTE أولًا. وتستحق ADASYN التجربة حين يُظهر تحليل الخطأ أن الإخفاقات المتبقية تقع عند الحدّ، وبعد فحص أصعب التصنيفات فقط.
الخلاصة
- ADASYN هي SMOTE مع ترجيح بالصعوبة لعدد النقاط التي تولّدها كل بذرة.
- تركّز الجهد عند حدّ الفصل، وهو حيث تقع الحالات الحدّية.
- الترجيح نفسه يعني أن نقطة موسومة خطأً تجتذب أكبر حصة من الميزانية الصناعية.
- دقّق العينات الأعلى صعوبةً قبل توليد أي شيء.
- قِسها مقابل SMOTE على طيّات متطابقة وأبلغ عن التباين لا المتوسط وحده.
الأسئلة الشائعة
الاستيفاء متطابق. وتغيّر ADASYN عدد النقاط الصناعية التي تنتجها كل بذرة، فتخصّص المزيد للبذور المحاطة بجيران من الفئة الأكبر.
لا. فهي تفيد حين تقع الأخطاء المتبقية عند الحدّ وتضرّ حين يكون الحدّ مشوَّشًا. قِس الاثنين على الطيّات نفسها وأبلغ عن التباين.
لأن النقطة الموسومة خطأً تكون محاطة بالفئة الأخرى، فتُنتج درجة صعوبة قصوى، فتخصّص لها ADASYN أكبر حصة من الميزانية الصناعية.
ليس مباشرةً، للسبب نفسه في SMOTE — فالاستيفاء بين رموز الفئات يُنتج قيمًا لا وجود لها. رمّز عمدًا أو استخدم صيغة تراعي الفئوية.
خمسة هي القيمة الافتراضية الشائعة. فالقيم الأصغر تجعل تقدير الصعوبة أكثر تشويشًا، والأكبر تُنعّمه وتقلّل الأثر التكيّفي باتجاه المعاينة المنتظمة.
تتلقى أقصى وزن صعوبة وقد تسبب سلوكًا شاذًا. وهذه النقاط عادةً إما قيم شاذة وإما تصنيفات خاطئة وينبغي فحصها مباشرةً.
ليس بالضرورة. فتدقيق العينات الأعلى صعوبةً يلتقط معظم المخاطرة بجزء يسير من الجهد، لأنها هي التي ستضخّمها ADASYN.
تعمل ببيانات لا يمكن أن تغادر بيئتك؟
أرسل توزيع الفئات ومصدر التصنيفات وقيود إقامة البيانات، ونحدّد نطاق مقاربة تدريب تبقى داخل نطاقك ويمكن التحقق منها على عتادك.
ناقش نشرًا داخل المقر للذكاء الاصطناعيالمصادر والأدلة
- He et al., ADASYN (IJCNN 2008) — الورقة الأصلية للتوليد التكيّفي للعينات.
- imbalanced-learn: ADASYN — المرجع الرسمي للواجهة وسلوك المعاملات.
- imbalanced-learn: مقارنة أساليب الزيادة — مقارنة بصرية رسمية بين SMOTE وADASYN وصيغهما.
- scikit-learn: الجيران الأقرب — مرجع حساب الجيران الذي تقوم عليه درجة الصعوبة.
أسماء الموردين والمنتجات علامات تجارية لمالكيها؛ وتُستخدم المراجع للسياق التقني ولا تعني شراكة أو اعتمادًا أو تأييدًا ما لم يُذكر ذلك صراحة.