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

التقليل هو أسلوب إعادة المعاينة الوحيد الذي يُتلف المعلومات. واستخدامه مع التقسيم الطبقي مقايضة هندسية معقولة؛ أما استخدامه عشوائيًا فيحوّل مشكلة عدم توازن الفئات إلى مشكلة إنذارات كاذبة.

آخر تحديث 23 Aug 2026 · Data and Data Quality المحور

مركز عمليات أمنية يراقب فيه المحللون تدفقًا مستمرًا من التنبيهات عبر شاشات متعددة
البيانات السليمة ليست سلوكًا واحدًا، ولهذا يزيل السحب المنتظم أندر الأنماط المشروعة أولًا. صورة سياقية.

ما المشكلة التي يعالجها هذا الحل؟

يستقبل مركز عمليات أمنية مُدار نحو 41 مليون حدث عبر تسعين يومًا متجددة. وبعد الربط تتحول 2.6 مليون منها إلى تنبيهات. ومن تلك أُكِّدت 1,180 حالة كحوادث حقيقية من محللي المستوى الثاني. فتكون النسبة على مستوى التنبيهات قريبة من واحد إلى 2,200.

وتدريب مصنّف لترتيب التنبيهات لأغراض الفرز يصطدم بجدارين منفصلين. الأول حسابي: فالملاءمة على 2.6 مليون صف في كل تجربة تجعل التكرار بطيئًا لدرجة أن الفريق يتوقف عن التجريب. والثاني إحصائي: إذ تهيمن الفئة السليمة على دالة الخسارة هيمنةً تامة فيتقارب النموذج على ترتيب كل شيء بأولوية منخفضة.

والميل الغريزي هو تقليل التنبيهات السليمة. والخطر أن «السليم» ليس شيئًا واحدًا. فهو يضم حركة النسخ الاحتياطي الليلية، ونشر الرقع المجدول، وفحوص الثغرات المصرّح بها، ونشاط حسابات الخدمة، وإعادة اتصال الشبكات الافتراضية الخاصة، وذيلًا طويلًا من ضجيج التطبيقات. والسحب العشوائي المنتظم يأخذ 99% من كل شيء، بما يشمل 99% من الأمثلة الأربعين الوحيدة لفحص مصرّح به — فيصنّف النموذج الفحص المصرّح به التالي كحادثة.

كيف يعمل الحل؟

اجعل السحب طبقيًا. عاين داخل كل نوع فرعي من السلوك السليم بدل المعاينة عبر الفئة الأكبر مجمّعةً، حتى تحتفظ السلوكيات النادرة المشروعة بنسبة أكبر من أمثلتها مما يحتفظ به الضجيج عالي الحجم.

وحيث لا توجد تسميات للأنواع الفرعية، جمّع الفئة الأكبر في عناقيد أولًا ثم عاين داخل العناقيد. فهذا يقارب التقسيم الطبقي مستخدمًا بنية موجودة في البيانات أصلًا.

وفكّر في الأساليب الجماعية بدل سحب واحد. فـ EasyEnsemble يدرّب عدة نماذج، كلٌّ على مجموعة فرعية مختلفة مقلَّلة من الفئة الأكبر، ثم يجمعها — فلا يبقى عبر المجموعة الجماعية إلا القليل من بيانات الفئة الأكبر غير مستخدم.

وميّز التقليل المُستنير عن العشوائي. فروابط Tomek تحذف نقاط الفئة الأكبر الملاصقة مباشرةً لنقطة من الفئة الأقل، فتنظّف الحدّ بدل تخفيف الفئة. وNearMiss يختار نقاط الفئة الأكبر بحسب قربها من الفئة الأقل، فيشحذ الحدّ لكنه شديد الحساسية للضوضاء.

  1. 1
    التقسيم قبل المعاينة ابنِ الطيّات أولًا. فتقليل البيانات كاملةً قبل التقسيم يُنتج مجموعة تقييم لم تعد تعكس أحجام التنبيهات الحية.
  2. 2
    تعريف طبقات الفئة الأكبر استخدم تصنيف التنبيهات القائم، أو معرّف قاعدة الاكتشاف، أو جولة تجميع حيث لا يوجد تصنيف.
  3. 3
    التوزيع لكل طبقة حدّد عدد الصفوف المُبقاة من كل نوع فرعي، مع إبقاء حدّ أدنى للسلوكيات منخفضة الحجم بدل نسبة موحّدة.
  4. 4
    السحب دون إرجاع عاين داخل كل طبقة. فلا يتكرر أي صف، والصفوف المحذوفة ببساطة غائبة عن هذه الطيّة.
  5. 5
    التقييم على التوزيع الأصلي تحتفظ مجموعتا التحقق والاختبار بالنسبة الحقيقية واحد إلى 2,200، فتعكس الدقة عند حدّ التشغيل عبء العمل الذي سيراه المحللون فعلًا.

البنية المرجعية

يمسّ التقليل أربعة اعتبارات، وأولها فقط يتعلق بنسبة الفئات.

LayerWhat it contains
تعريف الطبقةالنوع الفرعي للتنبيه أو قاعدة الاكتشاف أو هوية العنقود. وبدونها يكون السحب أعمى عن بنية تملكها الفئة الأكبر فعلًا.
سياسة الإبقاءحدود دنيا للسلوكيات منخفضة الحجم وتوزيع تناسبي للضجيج عالي الحجم.
استراتيجية الجمععدة مجموعات فرعية مقلَّلة تُجمَع، حتى لا تكون البيانات المحذوفة محذوفة عبر كل نموذج.
التقييم التشغيليالدقة عند ميزانية مراجعة المحللين، والإنذارات الكاذبة لكل نوع فرعي، وزمن إظهار حادثة مؤكدة.

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

القدرات الرئيسية

التقسيم الطبقي لأنواع التنبيهات

خطة إبقاء لكل سلوك سليم بحدّ أدنى صريح، حتى لا يختفي أي نمط مشروع من التدريب.

available

المعاينة القائمة على العناقيد

معاينة مدركة للبنية حيث يكون تصنيف التنبيهات ناقصًا أو غير متسق.

available

التقليل الجماعي

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

custom development

نمذجة عبء عمل المحللين

ربط الحدّ وحجم المراجعة المتوقع بالطاقة الفعلية للمستوى الأول في كل وردية.

custom development

التكاملات

يقع النموذج بين طبقة الربط وقائمة انتظار المحللين، فيكون سطح تكامله هو مسار التنبيهات ونظام إدارة الحالات لا منصة علوم بيانات.

النظامنقطة التكامل والبيانات المتبادلةالاتجاه
نظام SIEM وطبقة الربطحمل النوع الفرعي للتنبيه ومعرّف القاعدة كخصائص وكمفاتيح للتقسيم الطبقي. ← Class Imbalance: When 95% Accuracy Means the Model Found Nothingbi-directional
إدارة الحالاتكتابة بتّ المحلل كتصنيف للحادثة، وهو المصدر الوحيد لنمو الفئة الأقل. ← Label Noise: The Accuracy Ceiling Nobody Put There Deliberatelybi-directional
قائمة أعمال هندسة الاكتشافتوجيه الأنواع الفرعية المسبّبة لإنذارات كاذبة متكررة إلى ضبط القواعد بدل استيعابها في النموذج. ← SAIF – Cybersecuritybi-directional

حالات الاستخدام والقطاعات

فرز مراكز العمليات المُدارة

ترتيب قائمة تنبيهات كبيرة حتى ينصبّ انتباه المستوى الأول على الأرجح كونها حقيقية.

مراقبة مخاطر المطّلعين

الحالات المؤكدة نادرة للغاية وأنماط الوصول السليمة شديدة التنوع بحسب الدور.

مراقبة المعاملات المتاخمة للاحتيال

معاملات مشروعة عالية الحجم مع مجموعة مؤكدة صغيرة، حيث يتعذّر التدريب على كل شيء.

كشف شذوذ الشبكات

حجم البيانات يجعل التدريب على المجموعة الكاملة غير عملي قبل أن يصبح توازن الفئات قيدًا فعليًا.

اعتبارات الإمارات والخليج

حيث يعمل مركز عمليات أمنية تحت متطلبات ضمان المعلومات في الإمارات، تقيّد مدد الاحتفاظ بالسجلات وقواعد إقامة البيانات موضعَ مجموعة التدريب ومدةَ الاحتفاظ بأي طيّة مُعاينة. ومن النتائج العملية أن الطيّة المقلَّلة كثيرًا ما يسهل إبقاؤها داخل نطاق معتمد أكثر من مخزن السجلات الكامل، وهو ما يجعل التقليل أحيانًا عاملًا تشغيليًا مُمكِّنًا لا مجرد مقايضة إحصائية. أكّد موقف الاحتفاظ بمجموعات التدريب المشتقة تحديدًا، فهي كثيرًا ما لا تشملها سياسة الاحتفاظ بالسجلات التي تحكم المصدر.

منهجية التنفيذ

  1. 1
    حصر الفئات السليمة اسرد السلوكيات المشروعة المتمايزة داخل الفئة الأكبر وأحجامها قبل اختيار أي معدل معاينة.
  2. 2
    ضع الحدود ثم وزّع اضمن حدًّا أدنى لكل نوع فرعي أولًا، ووزّع الباقي بحسب الحجم.
  3. 3
    فضّل الأسلوب الجماعي حيث تسمح قدرة المعالجة، درّب عدة نماذج على مجموعات فرعية مختلفة بدل حذف البيانات مرة واحدة إلى الأبد.
  4. 4
    قيّم تشغيليًا أبلغ عن الحوادث المرصودة عند ميزانية مراجعة ثابتة إلى جانب PR-AUC.
  5. 5
    راقب لكل نوع فرعي تتبّع الإنذارات الكاذبة بحسب السلوك السليم بعد النشر؛ فالنوع الفرعي الذي خُفّف أكثر من اللازم يظهر هنا أولًا.

الأمن وخيارات النشر

طيّة التدريب المعاينة من بيانات مركز العمليات ما زالت تحوي أسماء مضيفات ومعرّفات مستخدمين وبنية شبكة داخلية، وهي بذلك هدف جذّاب بحد ذاتها. أبقِها داخل النطاق نفسه لمخزن السجلات، وطبّق ضوابط الوصول ذاتها، وحدّد تاريخ حذف صريحًا — فمجموعات التدريب المشتقة كثيرًا ما تغفلها سياسات الاحتفاظ المكتوبة للسجلات المصدر. وسجّل الأنواع الفرعية التي خُفّفت، فذلك السجل أول ما يُرجَع إليه حين يظهر نمط إنذارات كاذبة غير مفسَّر بعد أشهر.

مثال عملي

طيّة تدريب واحدة: 944 حادثة مؤكدة و2.08 مليون تنبيه سليم، باستهداف نسبة فئة أقل تبلغ واحدًا من أربعة.

  1. عدد الفئة الأكبر المطلوب. بقيمة p = 0.25، أبقِ 944 × 0.75 ÷ 0.25 = 2,832 تنبيهًا سليمًا من أصل 2.08 مليون.
  2. معدل الإبقاء في السحب المنتظم. 2,832 ÷ 2,080,000 معدل إبقاء يقارب 0.14%، يُطبَّق بشكل متطابق على كل سلوك سليم.
  3. الأثر على نوع فرعي عالي الحجم. حركة النسخ الاحتياطي الليلية تسهم بـ 610,000 تنبيه وتُبقي نحو 830. وهو وفير.
  4. الأثر على نوع فرعي منخفض الحجم. فحوص الثغرات المصرّح بها تسهم بـ 40 تنبيهًا عبر النافذة وتُبقي 0.056 — أي صفرًا عمليًا.
  5. البديل الطبقي. طبّق حدًّا أدنى قدره 25 صفًا لكل نوع فرعي أولًا، ثم وزّع الباقي تناسبيًا على الطبقات عالية الحجم.

السحب المنتظم يمحو سلوكًا مشروعًا كاملًا من طيّة التدريب. فلا يكون النموذج قد رأى قط فحصًا مصرّحًا به موسومًا كسليم، ويُرتَّب أول فحص يلقاه في التشغيل كحادثة مرجّحة. أما الحدّ الأدنى فيكلّف 25 صفًا من أصل 2,832 ويمنع هذا الصنف من الإنذارات الكاذبة تحديدًا.

مثال برمجي

المقارنة التي تستحق التشغيل هي المنتظم مقابل الطبقي، مقيسةً على تغطية الأنواع الفرعية لا على النتيجة الإجمالية.

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import average_precision_score, precision_recall_curve
from imblearn.under_sampling import RandomUnderSampler, TomekLinks
from imblearn.ensemble import EasyEnsembleClassifier

X_train, X_test, y_train, y_test, sub_train, sub_test = train_test_split(
    X, y, alert_subtype, test_size=0.25, stratify=y, random_state=5,
)

def stratified_undersample(X, y, subtype, target_majority, floor=25, seed=5):
    """Keep a minimum per benign subtype, then distribute the remainder by volume."""
    rng = np.random.default_rng(seed)
    maj = np.where(y == 0)[0]
    groups = pd.Series(subtype).iloc[maj].groupby(lambda i: subtype[maj[i]]).groups
    keep = []
    remaining = target_majority - floor * len(groups)
    total = len(maj)
    for name, idx in groups.items():
        idx = np.asarray(list(idx))
        share = int(round(remaining * (len(idx) / total))) if remaining > 0 else 0
        n = min(len(idx), floor + max(share, 0))
        keep.extend(rng.choice(idx, size=n, replace=False))
    keep = np.concatenate([np.asarray(keep, dtype=int), np.where(y == 1)[0]])
    return X[keep], y[keep]

n_min = int((y_train == 1).sum())
target_maj = int(n_min * 0.75 / 0.25)

# 1. Uniform random undersampling
Xu, yu = RandomUnderSampler(sampling_strategy=0.33, random_state=5).fit_resample(X_train, y_train)

# 2. Stratified undersampling with a per-subtype floor
Xs, ys = stratified_undersample(X_train, y_train, sub_train, target_maj)

# 3. Ensemble over multiple undersampled subsets - little majority data wasted
ens = EasyEnsembleClassifier(n_estimators=10, random_state=5).fit(X_train, y_train)

for name, (Xf, yf) in [("uniform", (Xu, yu)), ("stratified", (Xs, ys))]:
    clf = RandomForestClassifier(n_estimators=300, random_state=5).fit(Xf, yf)
    p = clf.predict_proba(X_test)[:, 1]
    print(name, "PR-AUC:", round(average_precision_score(y_test, p), 3))

print("easyensemble PR-AUC:",
      round(average_precision_score(y_test, ens.predict_proba(X_test)[:, 1]), 3))

# Operational view: at a fixed analyst budget, how many incidents are caught?
budget = 500
scores = ens.predict_proba(X_test)[:, 1]
cut = np.sort(scores)[-budget]
flagged = scores >= cut
print(f"at {budget} alerts reviewed: caught {int(y_test[flagged].sum())} of {int(y_test.sum())}")

ثلاث قيم لـ PR-AUC ورقم تشغيلي واحد. والسطر التشغيلي هو ما يُعرض على مدير مركز العمليات: كم حادثة مؤكدة يُظهرها الترتيب عند عدد ثابت من التنبيهات المراجَعة في كل وردية. وكثيرًا ما يتقارب PR-AUC الإجمالي بين المنتظم والطبقي بينما تختلف الإنذارات الكاذبة على مستوى النوع الفرعي اختلافًا كبيرًا.

فحوصات تشخيصية

  • عُدّ الصفوف المُبقاة لكل نوع فرعي سليم. فأي نوع خُفّض إلى صفر مصدرُ إنذارات كاذبة ينتظر التفعيل.
  • قارن معدلات الإنذار الكاذب لكل نوع فرعي بين المعاينة المنتظمة والطبقية؛ فالنتيجة الإجمالية ستُخفي الفارق.
  • تأكّد من احتفاظ مجموعتَي التحقق والاختبار بالنسبة الأصلية لا بالنسبة المقلَّلة.
  • أعد التشغيل ببذور متعددة. فإذا تذبذب PR-AUC بوضوح، فقد حُذف من الفئة الأكبر أكثر مما يسمح بتقدير مستقر.
  • تحقّق مما إذا كان كيان — مضيف أو مستخدم أو حساب خدمة — يقع كليًا في جانب واحد من التقسيم، فسجلات مراكز العمليات تتكرر بكثافة لكل كيان.
  • قارن بأوزان الفئات على البيانات كاملةً. فإن طابقت الأوزان نتيجة التقليل، فالبيانات المحذوفة لم تكن تشتري شيئًا.
التقليل العشوائي وفقدان المعلوماتأربعة أنواع فرعية من التنبيهات السليمة توضح كيف يمحو السحب المنتظم أندر السلوكيات المشروعة.التقليل العشوائي وفقدان المعلوماتالنوع الفرعي والحجمالسحب المنتظمطبقي + حدّ أدنىحركة النسخ الاحتياطي الليلية830830نشر الرقع المجدول330330نشاط حسابات الخدمة225فحص ثغرات مصرّح به025معدل إبقاء 0.14% مطبّق بالتساوي يمحو سلوكاً مشروعاً كاملاً.والحدّ الأدنى يكلف 25 صفاً من 2,832 ويمنع ذلك الصنف من الإنذارات الكاذبة.
النتيجة الإجمالية تُخفي ذلك. وعدّ الصفوف لكل نوع فرعي وحده يكشف أن سلوكاً مشروعاً كاملاً غادر طيّة التدريب.

متى تستخدم هذه التقنية

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

متى لا تستخدمها

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

القيود والمتطلبات المسبقة

  • الصفوف المحذوفة تختفي من تلك الطيّة كليًا؛ وخلافًا للتكرار لا يمكن تدارك الخسارة بالضبط.
  • السحب المنتظم أعمى عن بنية الفئة الأكبر ويحذف بصمت سلوكيات مشروعة نادرة.
  • المقاييس الإجمالية تُخفي الضرر، الذي يظهر كإنذارات كاذبة خاصة بأنواع فرعية بعد النشر.
  • NearMiss وغيره من المُنتقيات القائمة على القرب حسّاسة للضوضاء وقد تشحذ الحدّ حول نقاط موسومة خطأً.

صيغ التقليل لفرز التنبيهات

الاختيار بين السرعة وجودة الحدّ ومقدار المعلومات التي تقبل خسارتها.

الأسلوبما يفعلهالخطر الرئيسي
التقليل العشوائيسحب عشوائي منتظم من الفئة الأكبريحذف الأنواع السليمة النادرة
التقليل الطبقيسحب داخل النوع الفرعي بحدّ أدنىيتطلب تصنيفًا صالحًا
القائم على العناقيدمعاينة داخل عناقيد مكتشفةجودة العناقيد تحكم النتيجة
روابط Tomekحذف نقاط الفئة الأكبر الملاصقة للأقلينظّف الحدّ ولا يقلّل الحجم
NearMissاختيار نقاط الفئة الأكبر القريبة من الأقلشديد الحساسية لضوضاء التصنيف
EasyEnsembleمجموعات فرعية عديدة ونماذج مجمّعةكلفة تدريب واستدلال أعلى

لفرز تنبيهات مراكز العمليات، يكون التقليل الطبقي بحدود دنيا لكل نوع فرعي هو الخيار العملي الافتراضي، وEasyEnsemble هو الترقية حين تسمح ميزانية المعالجة.

الخلاصة

  • التقليل هو أسلوب إعادة المعاينة الوحيد الذي يحذف المعلومات نهائيًا.
  • «السليم» ليس فئة واحدة؛ والسحب المنتظم يمحو السلوكيات المشروعة منخفضة الحجم كليًا.
  • قسّم طبقيًا بحسب النوع الفرعي مع حدّ أدنى لكل طبقة، أو جمّع في عناقيد حيث لا يوجد تصنيف.
  • EasyEnsemble يستعيد معظم البيانات المحذوفة بجمع نماذج عبر عدة مجموعات فرعية.
  • قيّم على النسبة الأصلية وأبلغ عن الحوادث المرصودة عند ميزانية مراجعة ثابتة للمحللين.

الأسئلة الشائعة

نعم، وهو عائلة إعادة المعاينة الوحيدة التي تفعل ذلك. فكل صف محذوف غائب عن طيّة التدريب تلك بشكل دائم، ولهذا ينبغي أن يكون السحب طبقيًا لا منتظمًا.

قسّم طبقيًا بحسب النوع الفرعي للتنبيه أو العنقود، وطبّق حدًّا أدنى للعدد المُبقى في كل طبقة قبل توزيع الباقي تناسبيًا.

هو أسرع ولا يضيف تكرارًا، وهو ما يناسب فئة أكبر ضخمة جدًا. وهو أسوأ حين تحمل الفئة الأكبر بنية متنوعة لا يمكن التفريط فيها.

أسلوب جماعي يدرّب عدة مصنّفات، كلٌّ على مجموعة فرعية مختلفة مقلَّلة من الفئة الأكبر، ثم يجمعها — فتُستخدم عبر المجموعة الجماعية معظم بيانات الفئة الأكبر.

حين يكون الهدف حدّ فصل أنظف لا مجموعة بيانات أصغر. فهي تحذف نقاط الفئة الأكبر الملاصقة مباشرةً لنقطة من الفئة الأقل، وذلك هدف مختلف عن تقليل الحجم.

لا. فالتحقق والاختبار يجب أن يحتفظا بالنسبة الحقيقية، وإلا لن تعكس الدقة عند حدّ التشغيل حجم التنبيهات الذي يستقبله المحللون فعلًا.

بلغة عبء العمل: عند عدد ثابت من التنبيهات المراجَعة في الوردية، كم حادثة مؤكدة يُظهرها الترتيب، وكيف يقارَن ذلك بترتيب الفرز الحالي.

هل يغرق المحللون في تنبيهات لا يستطيع النموذج ترتيبها؟

أرسل تصنيف التنبيهات وعدد الحوادث المؤكدة وأحجام الفرز الحالية، وننظر فيما إذا كان القيد في توازن الفئات أم في منطق الاكتشاف أم في تعريف ما يُعدّ حادثة.

رتّب تقييمًا لهندسة الاكتشاف

+971 56 404 6555 · info@swedishtechnology.com

المصادر والأدلة

  1. imbalanced-learn: RandomUnderSampler — المرجع الرسمي لواجهة التقليل المنتظم.
  2. imbalanced-learn: أساليب التقليل — المرجع الرسمي لروابط Tomek وNearMiss ومراكز العناقيد.
  3. imbalanced-learn: EasyEnsembleClassifier — المرجع الرسمي للتقليل الجماعي.
  4. NIST SP 800-61r2 — مرجع تصنيف الحوادث ومصطلحات الفرز.

أسماء الموردين والمنتجات علامات تجارية لمالكيها؛ وتُستخدم المراجع للسياق التقني ولا تعني شراكة أو اعتمادًا أو تأييدًا ما لم يُذكر ذلك صراحة.