Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Merlion — टाइम सीरीज़ इंटेलिजेंस के लिए एंड-टू-एंड Python फ्रेमवर्क, जो एनोमली डिटेक्शन, फोरकास्टिंग, चेंज पॉइंट डिटेक्शन, AutoML, एन्सेम्बल और बेंचमार्किंग पाइपलाइन प्रदान करता है। | Kitploit
उपकरण/GitHubGitHub/salesforce/merlion
उपयोगिताएँ और फ्रेमवर्कमशीन लर्निंगविसंगति का पता लगानाArchived
GitHubsalesforce/merlion

Merlion

टाइम सीरीज़ इंटेलिजेंस के लिए एंड-टू-एंड Python फ्रेमवर्क, जो एनोमली डिटेक्शन, फोरकास्टिंग, चेंज पॉइंट डिटेक्शन, AutoML, एन्सेम्बल और बेंचमार्किंग पाइपलाइन प्रदान करता है।

रिपॉजिटरी देखें
4.5k3585 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
लोगो
Tests Coverage PyPI Version docs

Merlion: टाइम सीरीज़ के लिए एक मशीन लर्निंग लाइब्रेरी

विषय-सूची

  1. परिचय
  2. संबंधित लाइब्रेरीज़ से तुलना
  3. स्थापना
  4. दस्तावेज़ीकरण
  5. आरंभ करना
    1. विसंगति का पता लगाना
    2. पूर्वानुमान
  6. मूल्यांकन और बेंचमार्किंग
  7. तकनीकी रिपोर्ट और Merlion का उद्धरण

परिचय

Merlion टाइम सीरीज़ इंटेलिजेंस के लिए एक Python लाइब्रेरी है। यह एक एंड-टू-एंड मशीन लर्निंग फ्रेमवर्क प्रदान करती है जिसमें डेटा लोड करना और रूपांतरित करना, मॉडल बनाना और प्रशिक्षित करना, मॉडल आउटपुट का पोस्ट-प्रोसेसिंग और मॉडल प्रदर्शन का मूल्यांकन शामिल है। यह विभिन्न टाइम सीरीज़ लर्निंग कार्यों का समर्थन करती है, जिनमें यूनिवेरिएट और मल्टीवेरिएट टाइम सीरीज़ दोनों के लिए पूर्वानुमान, विसंगति का पता लगाना और चेंज पॉइंट का पता लगाना शामिल है। इस लाइब्रेरी का उद्देश्य इंजीनियरों और शोधकर्ताओं को उनकी विशिष्ट टाइम सीरीज़ आवश्यकताओं के लिए तेज़ी से मॉडल विकसित करने और कई टाइम सीरीज़ डेटासेट पर उनका बेंचमार्क करने हेतु एक वन-स्टॉप समाधान प्रदान करना है।

Merlion की प्रमुख विशेषताएं निम्नलिखित हैं:

  • मानकीकृत और आसानी से विस्तार योग्य डेटा लोडिंग और बेंचमार्किंग, जो कई प्रकार के पूर्वानुमान और विसंगति का पता लगाने वाले डेटासेट के लिए उपलब्ध है। इसमें कस्टम डेटासेट के लिए पारदर्शी समर्थन शामिल है।
  • विसंगति का पता लगाने, पूर्वानुमान और चेंज पॉइंट का पता लगाने के लिए विविध मॉडलों की एक लाइब्रेरी, जो सभी एक साझा इंटरफ़ेस के अंतर्गत एकीकृत हैं। मॉडलों में क्लासिक सांख्यिकीय विधियाँ, ट्री एन्सेम्बल और डीप लर्निंग दृष्टिकोण शामिल हैं। उन्नत उपयोगकर्ता प्रत्येक मॉडल को अपनी इच्छानुसार पूरी तरह कॉन्फ़िगर कर सकते हैं।
  • सार (Abstract) DefaultDetector और DefaultForecaster मॉडल, जो कुशल हैं, मज़बूती से अच्छा प्रदर्शन प्राप्त करते हैं, और नए उपयोगकर्ताओं के लिए एक प्रारंभिक बिंदु प्रदान करते हैं।
  • स्वचालित हाइपरपैरामीटर ट्यूनिंग और मॉडल चयन के लिए AutoML।
  • एक्सोजेनस रिग्रेसर्स के साथ पूर्वानुमान लगाने के लिए कई प्रकार के मॉडलों का उपयोग करने हेतु एकीकृत API।
  • विसंगति डिटेक्टरों के लिए व्यावहारिक, उद्योग-प्रेरित पोस्ट-प्रोसेसिंग नियम, जो विसंगति स्कोर को अधिक व्याख्येय बनाते हैं और साथ ही गलत सकारात्मक (false positive) की संख्या को कम करते हैं।
  • उपयोग में आसान एन्सेम्बल, जो अधिक मज़बूत प्रदर्शन प्राप्त करने के लिए कई मॉडलों के आउटपुट को संयोजित करते हैं।
  • लचीली मूल्यांकन पाइपलाइन, जो उत्पादन में एक मॉडल के लाइव परिनियोजन और पुनः-प्रशिक्षण का अनुकरण करती हैं, और पूर्वानुमान और विसंगति का पता लगाने दोनों पर प्रदर्शन का मूल्यांकन करती हैं।
  • मॉडल पूर्वानुमानों को विज़ुअलाइज़ करने के लिए मूल (native) समर्थन, जिसमें क्लिक करने योग्य विज़ुअल UI भी शामिल है।
  • PySpark का उपयोग करने वाला वितरित कम्प्यूटेशन बैकएंड, जिसका उपयोग औद्योगिक पैमाने पर टाइम सीरीज़ अनुप्रयोगों को सेवा देने के लिए किया जा सकता है।

संबंधित लाइब्रेरीज़ से तुलना

नीचे दी गई तालिका एक दृश्य अवलोकन प्रदान करती है कि Merlion की प्रमुख विशेषताएं टाइम सीरीज़ विसंगति का पता लगाने और/या पूर्वानुमान के लिए अन्य लाइब्रेरीज़ से किस प्रकार तुलना करती हैं।

निम्नलिखित विशेषताएं Merlion 2.0 में नई हैं:

स्थापना

Merlion दो उप-रिपॉजिटरीज़ से मिलकर बना है: merlion लाइब्रेरी की मुख्य टाइम सीरीज़ इंटेलिजेंस सुविधाओं को लागू करता है, और ts_datasets कई टाइम सीरीज़ डेटासेट के लिए मानकीकृत डेटा लोडर प्रदान करता है। ये लोडर टाइम सीरीज़ को संबंधित मेटाडेटा के साथ pandas.DataFrame के रूप में लोड करते हैं।

आप pip install salesforce-merlion कॉल करके PyPI से merlion स्थापित कर सकते हैं। आप इस रिपॉजिटरी को क्लोन करके और pip install Merlion/ कॉल करके स्रोत से स्थापित कर सकते हैं, या एडिटेबल मोड में स्थापित करने के लिए pip install -e Merlion/ कॉल कर सकते हैं। आप pip install salesforce-merlion[all] के माध्यम से अतिरिक्त निर्भरताएँ स्थापित कर सकते हैं, या यदि स्रोत से स्थापित कर रहे हैं तो pip install "Merlion/[all]" कॉल करके। व्यक्तिगत रूप से, वैकल्पिक निर्भरताओं में GUI डैशबोर्ड के लिए dashboard, PySpark के साथ वितरित कम्प्यूटेशन बैकएंड के लिए spark, और सभी डीप लर्निंग मॉडलों के लिए deep-learning शामिल हैं।

डेटा लोडिंग पैकेज ts_datasets स्थापित करने के लिए, इस रिपॉजिटरी को क्लोन करें और pip install -e Merlion/ts_datasets/ कॉल करें। यदि आप अपने डेटा लोडर को प्रारंभ करते समय प्रत्येक डेटासेट की रूट निर्देशिका को मैन्युअल रूप से निर्दिष्ट नहीं करना चाहते हैं, तो यह पैकेज एडिटेबल मोड (यानी -e फ्लैग के साथ) में स्थापित होना चाहिए।

निम्नलिखित बाहरी निर्भरताओं पर ध्यान दें:

  1. हमारे कुछ पूर्वानुमान मॉडल OpenMP पर निर्भर करते हैं। यदि आप conda का उपयोग कर रहे हैं, तो कृपया हमारा पैकेज स्थापित करने से पहले conda install -c conda-forge lightgbm चलाएँ। यह सुनिश्चित करेगा कि OpenMP आपके conda वातावरण में lightgbm पैकेज (हमारी एक निर्भरता) के साथ काम करने के लिए कॉन्फ़िगर किया गया है। यदि Mac का उपयोग कर रहे हैं, तो कृपया Homebrew स्थापित करें और brew install libomp चलाएँ ताकि OpenMP लाइब्रेरी मॉडल के लिए उपलब्ध हो।

  2. हमारे कुछ विसंगति का पता लगाने वाले मॉडल Java Development Kit (JDK) पर निर्भर करते हैं। Ubuntu के लिए, sudo apt-get install openjdk-11-jdk चलाएँ। Mac OS के लिए, Homebrew स्थापित करें और brew tap adoptopenjdk/openjdk && brew install --cask adoptopenjdk11 चलाएँ। यह भी सुनिश्चित करें कि java आपके PATH पर मौजूद है, और JAVA_HOME पर्यावरण चर सेट है।

दस्तावेज़ीकरण

उदाहरण कोड और Merlion के परिचय के लिए, examples में मौजूद Jupyter नोटबुक और यहाँ दिए गए निर्देशित वॉकथ्रू को देखें। आप विस्तृत API दस्तावेज़ीकरण (उदाहरण कोड सहित) यहाँ पा सकते हैं। तकनीकी रिपोर्ट Merlion के समग्र आर्किटेक्चर की रूपरेखा प्रस्तुत करती है और यूनिवेरिएट व मल्टीवेरिएट टाइम सीरीज़ दोनों के लिए टाइम सीरीज़ विसंगति का पता लगाने और पूर्वानुमान पर प्रयोगात्मक परिणाम प्रस्तुत करती है।

आरंभ करना

आरंभ करने का सबसे आसान तरीका GUI वेब-आधारित dashboard का उपयोग करना है। यह डैशबोर्ड आपके अपने कस्टम डेटासेट पर कई मॉडलों के साथ तेज़ी से प्रयोग करने का एक शानदार तरीका प्रदान करता है। इसका उपयोग करने के लिए, वैकल्पिक dashboard निर्भरता के साथ Merlion स्थापित करें (जैसे pip install salesforce-merlion[dashboard]), और कमांड लाइन से python -m merlion.dashboard चलाएँ। आप डैशबोर्ड को http://localhost:8050 पर देख सकते हैं। नीचे, हम विसंगति का पता लगाने और पूर्वानुमान दोनों के लिए डैशबोर्ड के कुछ स्क्रीनशॉट दिखाते हैं।

विसंगति डैशबोर्ड

पूर्वानुमान डैशबोर्ड

अपने स्वयं के कोड में Merlion का उपयोग शुरू करने में आपकी सहायता के लिए, हम नीचे विसंगति का पता लगाने और पूर्वानुमान दोनों के लिए Merlion डिफ़ॉल्ट मॉडलों का उपयोग करते हुए कुछ न्यूनतम उदाहरण प्रदान करते हैं।

विसंगति का पता लगाना

यहाँ, हम ऊपर दिए गए विसंगति का पता लगाने वाले डैशबोर्ड के परिणामों को दोहराने के लिए कोड दिखाते हैं। हम Merlion के TimeSeries क्लास और 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])

फिर हम Merlion के DefaultDetector को प्रारंभ और प्रशिक्षित कर सकते हैं, जो एक विसंगति का पता लगाने वाला मॉडल है जो प्रदर्शन और दक्षता के बीच संतुलन बनाता है। हम परीक्षण भाग पर इसकी भविष्यवाणियाँ भी प्राप्त करते हैं।

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()

विसंगति आकृति

अंत में, हम मॉडल का मात्रात्मक मूल्यांकन कर सकते हैं। प्रेसिजन और रिकॉल इस तथ्य से आते हैं कि मॉडल ने 3 अलार्म जारी किए, जिनमें 2 ट्रू पॉज़िटिव, 1 फ़ॉल्स नेगेटिव और 1 फ़ॉल्स पॉज़िटिव थे। हम उस औसत समय का भी मूल्यांकन करते हैं जो मॉडल ने प्रत्येक सही ढंग से पहचानी गई विसंगति का पता लगाने में लिया।

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

पूर्वानुमान

यहाँ, हम ऊपर दिए गए पूर्वानुमान डैशबोर्ड के परिणामों को दोहराने के लिए कोड दिखाते हैं। हम Merlion के TimeSeries क्लास और 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])

फिर हम Merlion के DefaultForecaster को प्रारंभ और प्रशिक्षित कर सकते हैं, जो एक पूर्वानुमान मॉडल है जो प्रदर्शन और दक्षता के बीच संतुलन बनाता है। हम परीक्षण भाग पर इसकी भविष्यवाणियाँ भी प्राप्त करते हैं।

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()

पूर्वानुमान आकृति

अंत में, हम मॉडल का मात्रात्मक मूल्यांकन करते हैं। sMAPE 0 से 100 के पैमाने पर भविष्यवाणी की त्रुटि को मापता है (कम बेहतर है), जबकि MSIS 0 से 100 के पैमाने पर 95% विश्वास बैंड की गुणवत्ता का मूल्यांकन करता है (कम बेहतर है)।

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

NAB डेटासेट के "realAWSCloudwatch" सबसेट पर IsolationForest (दिन में एक बार पुनः प्रशिक्षित) की विसंगति का पता लगाने के प्रदर्शन का मूल्यांकन करेगा। इसी प्रकार, निम्न को कॉल करने पर:

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

M4 डेटासेट के "Hourly" सबसेट पर ETS की बैच पूर्वानुमान क्षमता (यानी कोई पुनः-प्रशिक्षण नहीं) का मूल्यांकन करेगा। इन स्क्रिप्ट्स को चलाने से उत्पन्न परिणाम आप तकनीकी रिपोर्ट के Experiments अनुभाग में पा सकते हैं।

तकनीकी रिपोर्ट और 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}
}

कार्य सूची

हम Merlion की गति और थ्रूपुट को और बेहतर बनाने के लिए GPU के साथ टाइम-सीरीज़ मॉडलिंग का लाभ उठाने का प्रयास कर रहे हैं। जुड़े रहें ...

टूल डाउनलोड करें
MerlionProphetAlibi DetectKatsdartsstatsmodelsnixtlaGluonTSRRCFSTUMPYGreykitepmdarima
यूनिवेरिएट पूर्वानुमान✅✅✅✅✅✅✅✅✅
मल्टीवेरिएट पूर्वानुमान✅✅✅✅✅✅
यूनिवेरिएट विसंगति का पता लगाना✅✅✅✅✅✅✅✅✅
मल्टीवेरिएट विसंगति का पता लगाना✅✅✅✅✅✅
प्री-प्रोसेसिंग✅✅✅✅✅✅✅✅
पोस्ट-प्रोसेसिंग✅✅
AutoML✅✅✅
एन्सेम्बल✅✅✅✅
बेंचमार्किंग✅✅✅✅✅
विज़ुअलाइज़ेशन✅✅✅✅✅
MerlionProphetAlibi DetectKatsdartsstatsmodelsnixtlaGluonTSRRCFSTUMPYGreykitepmdarima
एक्सोजेनस रिग्रेसर्स✅✅✅✅✅✅
चेंज पॉइंट का पता लगाना✅✅✅✅✅
क्लिक करने योग्य विज़ुअल UI✅
वितरित बैकएंड✅✅