Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Merlion — إطار عمل Python متكامل لذكاء السلاسل الزمنية، يوفر كشف الشذوذ، والتنبؤ، وكشف نقاط التغيير، وAutoML، والنماذج المجمعة، وخطوط أنابيب المقارنة المعيارية. | Kitploit
أدوات/GitHubGitHub/salesforce/merlion
الأدوات والمكوناتتعلم الآلةكشف الشذوذArchived
GitHubsalesforce/merlion

Merlion

إطار عمل Python متكامل لذكاء السلاسل الزمنية، يوفر كشف الشذوذ، والتنبؤ، وكشف نقاط التغيير، وAutoML، والنماذج المجمعة، وخطوط أنابيب المقارنة المعيارية.

عرض المستودع
4.5k358منذ 5 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الشعار
Tests Coverage PyPI Version docs

Merlion: مكتبة تعلم آلي للسلاسل الزمنية

جدول المحتويات

  1. مقدمة
  2. المقارنة مع المكتبات ذات الصلة
  3. التثبيت
  4. التوثيق
  5. بدء الاستخدام
    1. كشف الشذوذ
    2. التنبؤ
  6. التقييم والمعايرة
  7. التقرير الفني والاستشهاد بـ Merlion

مقدمة

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

الميزات الرئيسية لـ Merlion هي

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

المقارنة مع المكتبات ذات الصلة

يعطي الجدول أدناه نظرة عامة مرئية حول كيفية مقارنة الميزات الرئيسية لـ Merlion بالمكتبات الأخرى الخاصة بكشف شذوذ السلاسل الزمنية و/أو التنبؤ بها.

الميزات التالية جديدة في Merlion 2.0:

التثبيت

تتكون Merlion من مستودعين فرعيين: merlion ينفذ ميزات ذكاء السلاسل الزمنية الأساسية للمكتبة، وts_datasets يوفر محمّلات بيانات موحدة لمجموعات بيانات متعددة للسلاسل الزمنية. تقوم هذه المحمّلات بتحميل السلاسل الزمنية كإطارات pandas.DataFrame مع بيانات وصفية مصاحبة.

يمكنك تثبيت merlion من PyPI عن طريق استدعاء pip install salesforce-merlion. يمكنك التثبيت من المصدر عن طريق استنساخ هذا المستودع واستدعاء pip install Merlion/، أو pip install -e Merlion/ للتثبيت في الوضع القابل للتحرير. يمكنك تثبيت تبعيات إضافية عبر pip install salesforce-merlion[all]، أو عن طريق استدعاء pip install "Merlion/[all]" إذا كنت تثبّت من المصدر. بشكل منفرد، تشمل التبعيات الاختيارية: dashboard للوحة تحكم رسومية، وspark لواجهة خلفية حوسبة موزعة باستخدام PySpark، وdeep-learning لجميع نماذج التعلم العميق.

لتثبيت حزمة تحميل البيانات ts_datasets، استنسخ هذا المستودع واستدعِ pip install -e Merlion/ts_datasets/. يجب تثبيت هذه الحزمة في الوضع القابل للتحرير (أي باستخدام علامة -e) إذا كنت لا تريد تحديد المجلد الجذري لكل مجموعة بيانات يدويًا عند تهيئة محمّل البيانات الخاص بها.

لاحظ التبعيات الخارجية التالية:

  1. تعتمد بعض نماذج التنبؤ لدينا على OpenMP. إذا كنت تستخدم conda، فيرجى تنفيذ conda install -c conda-forge lightgbm قبل تثبيت حزمتنا. سيضمن ذلك تكوين OpenMP ليعمل مع حزمة lightgbm (أحد تبعياتنا) في بيئة conda الخاصة بك. إذا كنت تستخدم Mac، فيرجى تثبيت Homebrew واستدعاء brew install libomp بحيث تكون مكتبة OpenMP متاحة للنموذج.

  2. تعتمد بعض نماذج كشف الشذوذ لدينا على مجموعة أدوات تطوير جافا (JDK). بالنسبة لأوبونتو، استدعِ sudo apt-get install openjdk-11-jdk. بالنسبة لنظام Mac OS، ثبّت Homebrew واستدعِ brew tap adoptopenjdk/openjdk && brew install --cask adoptopenjdk11. وتأكد أيضًا من إمكانية العثور على java في PATH الخاص بك، ومن تعيين متغير البيئة JAVA_HOME.

التوثيق

للحصول على أمثلة للتعليمات البرمجية ومقدمة عن Merlion، راجع دفاتر Jupyter في examples، والدليل الموجّه هنا. يمكنك العثور على توثيق مفصل لواجهة برمجة التطبيقات (بما في ذلك مثال للتعليمات البرمجية) هنا. يوضح التقرير الفني البنية العامة لـ Merlion ويعرض نتائج تجريبية حول كشف شذوذ السلاسل الزمنية والتنبؤ بها لكل من السلاسل الزمنية أحادية المتغير ومتعددة المتغيرات.

بدء الاستخدام

أسهل طريقة لبدء الاستخدام هي استخدام لوحة التحكم الرسومية المستندة إلى الويب. توفر هذه اللوحة طريقة رائعة للتجربة السريعة مع العديد من النماذج على مجموعات البيانات المخصصة الخاصة بك. لاستخدامها، ثبّت Merlion مع التبعية الاختيارية dashboard (أي pip install salesforce-merlion[dashboard])، واستدعِ python -m merlion.dashboard من سطر الأوامر. يمكنك عرض اللوحة على http://localhost:8050. أدناه، نعرض بعض لقطات الشاشة للوحة التحكم لكل من كشف الشذوذ والتنبؤ.

anomaly dashboard

forecast dashboard

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

كشف الشذوذ

هنا، نعرض التعليمات البرمجية لتكرار النتائج من لوحة تحكم كشف الشذوذ أعلاه. نبدأ باستيراد فئة TimeSeries الخاصة بـ Merlion ومحمّل البيانات لمعيار Numenta Anomaly Benchmark NAB. يمكننا بعد ذلك تقسيم سلسلة زمنية معينة من مجموعة البيانات هذه إلى أجزاء تدريب واختبار.

root@kitploit:~
from merlion.utils import TimeSeries
from ts_datasets.anomaly import NAB

# Data loader returns pandas DataFrames, which we convert to Merlion TimeSeries
time_series, metadata = NAB(subset="realKnownCause")[3]
train_data = TimeSeries.from_pd(time_series[metadata.trainval])
test_data = TimeSeries.from_pd(time_series[~metadata.trainval])
test_labels = TimeSeries.from_pd(metadata.anomaly[~metadata.trainval])

يمكننا بعد ذلك تهيئة وتدريب DefaultDetector الخاص بـ Merlion، وهو نموذج لكشف الشذوذ يوازن بين الأداء والكفاءة. كما نحصل على تنبؤاته على جزء الاختبار.

root@kitploit:~
from merlion.models.defaults import DefaultDetectorConfig, DefaultDetector
model = DefaultDetector(DefaultDetectorConfig())
model.train(train_data=train_data)
test_pred = model.get_anomaly_label(time_series=test_data)

بعد ذلك، نعرض تنبؤات النموذج.

root@kitploit:~
from merlion.plot import plot_anoms
import matplotlib.pyplot as plt
fig, ax = model.plot_anomaly(time_series=test_data)
plot_anoms(ax=ax, anomaly_labels=test_labels)
plt.show()

anomaly figure

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

root@kitploit:~
from merlion.evaluate.anomaly import TSADMetric
p = TSADMetric.Precision.value(ground_truth=test_labels, predict=test_pred)
r = TSADMetric.Recall.value(ground_truth=test_labels, predict=test_pred)
f1 = TSADMetric.F1.value(ground_truth=test_labels, predict=test_pred)
mttd = TSADMetric.MeanTimeToDetect.value(ground_truth=test_labels, predict=test_pred)
print(f"Precision: {p:.4f}, Recall: {r:.4f}, F1: {f1:.4f}\n"
      f"Mean Time To Detect: {mttd}")
root@kitploit:~
Precision: 0.6667, Recall: 0.6667, F1: 0.6667
Mean Time To Detect: 1 days 10:22:30

التنبؤ

هنا، نعرض التعليمات البرمجية لتكرار النتائج من لوحة تحكم التنبؤ أعلاه. نبدأ باستيراد فئة TimeSeries الخاصة بـ Merlion ومحمّل البيانات لمجموعة البيانات M4. يمكننا بعد ذلك تقسيم سلسلة زمنية معينة من مجموعة البيانات هذه إلى أجزاء تدريب واختبار.

root@kitploit:~
from merlion.utils import TimeSeries
from ts_datasets.forecast import M4

# Data loader returns pandas DataFrames, which we convert to Merlion TimeSeries
time_series, metadata = M4(subset="Hourly")[0]
train_data = TimeSeries.from_pd(time_series[metadata.trainval])
test_data = TimeSeries.from_pd(time_series[~metadata.trainval])

يمكننا بعد ذلك تهيئة وتدريب DefaultForecaster الخاص بـ Merlion، وهو نموذج تنبؤ يوازن بين الأداء والكفاءة. كما نحصل على تنبؤاته على جزء الاختبار.

root@kitploit:~
from merlion.models.defaults import DefaultForecasterConfig, DefaultForecaster
model = DefaultForecaster(DefaultForecasterConfig())
model.train(train_data=train_data)
test_pred, test_err = model.forecast(time_stamps=test_data.time_stamps)

بعد ذلك، نعرض تنبؤات النموذج.

root@kitploit:~
import matplotlib.pyplot as plt
fig, ax = model.plot_forecast(time_series=test_data, plot_forecast_uncertainty=True)
plt.show()

forecast figure

أخيرًا، نقوم بتقييم النموذج كميًا. يقيس sMAPE خطأ التنبؤ على مقياس من 0 إلى 100 (الأقل أفضل)، بينما يقيم MSIS جودة نطاق الثقة 95% على مقياس من 0 إلى 100 (الأقل أفضل).

root@kitploit:~
# Evaluate the model's predictions quantitatively
from scipy.stats import norm
from merlion.evaluate.forecast import ForecastMetric

# Compute the sMAPE of the predictions (0 to 100, smaller is better)
smape = ForecastMetric.sMAPE.value(ground_truth=test_data, predict=test_pred)

# Compute the MSIS of the model's 95% confidence interval (0 to 100, smaller is better)
lb = TimeSeries.from_pd(test_pred.to_pd() + norm.ppf(0.025) * test_err.to_pd().values)
ub = TimeSeries.from_pd(test_pred.to_pd() + norm.ppf(0.975) * test_err.to_pd().values)
msis = ForecastMetric.MSIS.value(ground_truth=test_data, predict=test_pred,
                                 insample=train_data, lb=lb, ub=ub)
print(f"sMAPE: {smape:.4f}, MSIS: {msis:.4f}")
root@kitploit:~
sMAPE: 4.1944, MSIS: 18.9331

التقييم والمعايرة

إحدى الميزات الرئيسية لـ Merlion هي خط أنابيب التقييم الذي يحاكي النشر المباشر لنموذج على البيانات التاريخية. يتيح لك ذلك مقارنة النماذج على مجموعات البيانات ذات الصلة بها، تحت الظروف التي قد تواجهها في بيئة الإنتاج. تسير عملية التقييم لدينا على النحو التالي:

  1. تدريب نموذج أولي على بيانات التدريب التاريخية الحديثة (المحددة كقسم التدريب من السلسلة الزمنية)
  2. على فترات منتظمة (مثل مرة واحدة يوميًا)، إعادة تدريب النموذج بالكامل على أحدث البيانات. يمكن أن يكون هذا إما كامل تاريخ السلسلة الزمنية، أو نافذة أكثر محدودية (مثل 4 أسابيع).
  3. الحصول على تنبؤات النموذج (درجات الشذوذ أو التنبؤات) لقيم السلاسل الزمنية التي تحدث بين عمليات إعادة التدريب. يمكنك تخصيص ما إذا كان يجب القيام بذلك دفعة واحدة (التنبؤ بجميع القيم مرة واحدة)، أو بشكل متدفق (تحديث الحالة الداخلية للنموذج بعد كل نقطة بيانات دون إعادة تدريبه بالكامل)، أو بإيقاع وسيط.
  4. مقارنة تنبؤات النموذج بالحقيقة الأساسية (الشذوذ المصنّفة لكشف الشذوذ، أو قيم السلاسل الزمنية الفعلية للتنبؤ)، والإبلاغ عن مقاييس تقييم كمية.

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

root@kitploit:~
python benchmark_anomaly.py --dataset NAB_realAWSCloudwatch --model IsolationForest --retrain_freq 1d

سيقوم بتقييم أداء كشف الشذوذ لنموذج IsolationForest (الذي يُعاد تدريبه مرة واحدة يوميًا) على المجموعة الفرعية "realAWSCloudwatch" من مجموعة بيانات NAB. وبالمثل، استدعاء

root@kitploit:~
python benchmark_forecast.py --dataset M4_Hourly --model ETS

سيقوم بتقييم أداء التنبؤ الدفعي (أي بدون إعادة تدريب) لنموذج ETS على المجموعة الفرعية "Hourly" من مجموعة بيانات M4. يمكنك العثور على النتائج التي تم إنتاجها عن طريق تشغيل هذه البرامج النصية في قسم التجارب في التقرير الفني.

التقرير الفني والاستشهاد بـ Merlion

يمكنك العثور على مزيد من التفاصيل في تقريرنا الفني: https://arxiv.org/abs/2109.09265

إذا كنت تستخدم Merlion في أبحاثك أو تطبيقاتك، فيرجى الاستشهاد باستخدام BibTeX هذا:

root@kitploit:~
@article{bhatnagar2021merlion,
      title={Merlion: A Machine Learning Library for Time Series},
      author={Aadyot Bhatnagar and Paul Kassianik and Chenghao Liu and Tian Lan and Wenzhuo Yang
              and Rowan Cassius and Doyen Sahoo and Devansh Arpit and Sri Subramanian and Gerald Woo
              and Amrita Saha and Arun Kumar Jagota and Gokulakrishnan Gopalakrishnan and Manpreet Singh
              and K C Krithika and Sukumar Maddineni and Daeki Cho and Bo Zong and Yingbo Zhou
              and Caiming Xiong and Silvio Savarese and Steven Hoi and Huan Wang},
      year={2021},
      eprint={2109.09265},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

المهام القادمة

نحن نسعى جاهدين للاستفادة من نمذجة السلاسل الزمنية باستخدام وحدات معالجة الرسوميات (GPUs) لزيادة تحسين سرعة وإنتاجية Merlion. ترقبوا المزيد ...

تنزيل الأداة
MerlionProphetAlibi DetectKatsdartsstatsmodelsnixtlaGluonTSRRCFSTUMPYGreykitepmdarima
التنبؤ أحادي المتغير✅✅✅✅✅✅✅✅✅
التنبؤ متعدد المتغيرات✅✅✅✅✅✅
كشف الشذوذ أحادي المتغير✅✅✅✅✅✅✅✅✅
كشف الشذوذ متعدد المتغيرات✅✅✅✅✅✅
المعالجة المسبقة✅✅✅✅✅✅✅✅
المعالجة اللاحقة✅✅
AutoML✅✅✅✅
التجميعات✅✅✅✅
القياس المعياري✅✅✅✅✅
التصور✅✅✅✅✅
MerlionProphetAlibi DetectKatsdartsstatsmodelsnixtlaGluonTSRRCFSTUMPYGreykitepmdarima
المتغيرات الخارجية✅✅✅✅✅✅
كشف نقاط التغيير✅✅✅✅✅
واجهة مستخدم مرئية قابلة للنقر✅
الواجهة الخلفية الموزعة✅✅