
टाइम सीरीज़ पर उपयोगकर्ता-अनुकूल पूर्वानुमान और विसंगति पहचान के लिए एक python लाइब्रेरी।

Darts टाइम सीरीज़ पर उपयोगकर्ता-मैत्रीपूर्ण पूर्वानुमान और विसंगति पहचान के लिए एक पायथन लाइब्रेरी है। इसमें विभिन्न प्रकार के मॉडल शामिल हैं, ARIMA जैसे क्लासिक मॉडल से लेकर डीप न्यूरल नेटवर्क तक। सभी पूर्वानुमान मॉडलों का उपयोग एक ही तरीके से किया जा सकता है, fit() और predict() फ़ंक्शन का उपयोग करके, scikit-learn के समान। यह लाइब्रेरी मॉडलों को बैकटेस्ट करना, कई मॉडलों की भविष्यवाणियों को संयोजित करना और बाहरी डेटा को ध्यान में रखना भी आसान बनाती है। Darts यूनिवेरिएट और मल्टीवेरिएट दोनों प्रकार की टाइम सीरीज़ और मॉडलों का समर्थन करता है। ML-आधारित मॉडलों को कई टाइम सीरीज़ वाले संभावित रूप से बड़े डेटासेट पर प्रशिक्षित किया जा सकता है, और कुछ मॉडल प्रोबेबिलिस्टिक पूर्वानुमान के लिए समृद्ध समर्थन प्रदान करते हैं।
Darts व्यापक विसंगति पहचान क्षमताएं भी प्रदान करता है। उदाहरण के लिए, विसंगति स्कोर प्राप्त करने के लिए टाइम सीरीज़ पर PyOD मॉडल लागू करना, या पूर्ण विकसित विसंगति पहचान मॉडल प्राप्त करने के लिए किसी भी Darts पूर्वानुमान या फ़िल्टरिंग मॉडल को रैप करना बहुत आसान है।
हम अनुशंसा करते हैं कि पहले अपने पसंदीदा टूल का उपयोग करके Python 3.11+ के साथ अपने प्रोजेक्ट के लिए एक साफ़ पायथन वातावरण सेटअप करें (conda, venv, virtualenv के साथ या बिना virtualenvwrapper)।
एक बार आपका वातावरण सेट हो जाने के बाद आप pip का उपयोग करके darts इंस्टॉल कर सकते हैं:
pip install darts
अधिक जानकारी के लिए आप हमारे इंस्टॉलेशन निर्देश देख सकते हैं।
एक Pandas DataFrame से एक TimeSeries ऑब्जेक्ट बनाएं, और इसे train/validation सीरीज़ में विभाजित करें:```python
import pandas as pd
from darts import TimeSeries
df = pd.read_csv("AirPassengers.csv", delimiter=",")
series = TimeSeries.from_dataframe(df, "Month", "#Passengers")
train, val = series[:-36], series[-36:]
एक exponential smoothing मॉडल फिट करें, और validation series की अवधि पर एक (probabilistic) prediction बनाएं:```python
from darts.models import ExponentialSmoothing
model = ExponentialSmoothing()
model.fit(train)
prediction = model.predict(len(val), num_samples=1000)
माध्यिका, 5वें और 95वें प्रतिशतक को प्लॉट करें:```python import matplotlib.pyplot as plt
series.plot() prediction.plot(label="forecast", low_quantile=0.05, high_quantile=0.95) plt.legend()
<div style="text-align:center;">
<img src="https://raw.githubusercontent.com/unit8co/darts/master/static/images/example.png" alt="darts forecast example" />
</div>
### विसंगति पहचान
एक बहुभिन्न श्रृंखला लोड करें, इसे ट्रिम करें, 2 घटक रखें, प्रशिक्षण और सत्यापन सेट विभाजित करें:```python
from darts.datasets import ETTh2Dataset
series = ETTh2Dataset().load()[:10000][["MUFL", "LULL"]]
train, val = series.split_before(0.6)
एक k-means विसंगति स्कोरर बनाएं, इसे ट्रेन सेट पर प्रशिक्षित करें और विसंगति स्कोर प्राप्त करने के लिए इसे सत्यापन सेट पर उपयोग करें:```python from darts.ad import KMeansScorer
scorer = KMeansScorer(k=2, window=5) scorer.fit(train) anom_score = scorer.score(val)
एक बाइनरी एनोमली डिटेक्टर बनाएं और इसे train स्कोर पर प्रशिक्षित करें,
फिर बाइनरी एनोमली वर्गीकरण प्राप्त करने के लिए इसे validation स्कोर पर उपयोग करें:```python
from darts.ad import QuantileDetector
detector = QuantileDetector(high_quantile=0.99)
detector.fit(scorer.score(train))
binary_anom = detector.detect(anom_score)
Plot (श्रृंखलाओं में से कुछ को शिफ्ट और स्केल करके सब कुछ एक ही चित्र पर दिखाना):```python import matplotlib.pyplot as plt
series.plot() (anom_score / 2. - 100).plot(label="computed anomaly score", c="orangered", lw=3) (binary_anom * 45 - 150).plot(label="detected binary anomaly", lw=4)
<div style="text-align:center;">
<img src="https://raw.githubusercontent.com/unit8co/darts/master/static/images/example_ad.png" alt="darts anomaly detection example" />
</div>
## विशेषताएँ
* **पूर्वानुमान मॉडल:** प्रतिगमन के साथ-साथ वर्गीकरण कार्यों के लिए पूर्वानुमान मॉडलों का एक बड़ा संग्रह; सांख्यिकीय मॉडलों (जैसे
ARIMA) से लेकर गहन शिक्षण मॉडलों (जैसे N-BEATS) तक। नीचे [पूर्वानुमान मॉडल](#forecasting-models) देखें।
* **विसंगति पहचान** `darts.ad` मॉड्यूल में विसंगति स्कोरर, डिटेक्टर और एग्रीगेटर का संग्रह है,
जिन्हें समय श्रृंखला में विसंगतियों का पता लगाने के लिए संयोजित किया जा सकता है।
किसी भी Darts पूर्वानुमान या फ़िल्टरिंग मॉडल को रैप करके एक पूर्ण विसंगति पहचान मॉडल बनाना आसान है
जो भविष्यवाणियों की वास्तविक मानों से तुलना करता है।
`PyODScorer` समय श्रृंखला पर PyOD डिटेक्टरों का उपयोग करना सरल बनाता है।
* **बहुभिन्न समर्थन:** `TimeSeries` बहुभिन्न हो सकता है - अर्थात, एकल अदिश मान के बजाय कई समय-परिवर्तनशील
आयाम/कॉलम शामिल हो सकते हैं। कई मॉडल बहुभिन्न श्रृंखलाओं को उपभोग और उत्पादन कर सकते हैं।