पृष्ठभूमि
मैं नेटवर्क संचालन केंद्र में काम कर रहा हूं, हम कंप्यूटर सिस्टम और उनके प्रदर्शन की निगरानी करते हैं। मॉनिटर करने के लिए एक महत्वपूर्ण मैट्रिक्स वर्तमान में हमारे सर्वर से जुड़े विज़िटर के कई ग्राहक हैं। इसे दृश्यमान बनाने के लिए हम (ऑप्स टीम) ऐसे मेट्रिक्स को टाइम-सीरीज़ डेटा के रूप में एकत्र करते हैं और रेखांकन बनाते हैं। ग्रेफाइट हमें यह करने की अनुमति देता है, इसमें एक बहुत समृद्ध एपीआई है जो मैं अपनी टीम को सूचित करने के लिए अलर्ट सिस्टम बनाने के लिए उपयोग करता हूं यदि अचानक ड्रॉप (ज्यादातर) और अन्य परिवर्तन होते हैं। अभी के लिए मैंने एवीजी मूल्य के आधार पर एक स्थिर सीमा निर्धारित की है, लेकिन यह दिन और सप्ताह के दौरान अलग-अलग भार (सीज़नस फैक्टर) के कारण बहुत अच्छी तरह से काम नहीं करता है।
यह कुछ इस तरह दिखता है:
वास्तविक डेटा (एक मीट्रिक, 15 मिनट समय सीमा के लिए एक उदाहरण; पहली संख्या उपयोगकर्ताओं की एक संख्या है, दूसरा समय टिकट):
[{"target": "metric_name", "datapoints": [[175562.0, 1431803460], [176125.0, 1431803520], [176125.0, 1431803580], [175710.0, 1431803640], [175710.0, 1431803700], [175733.0, 1431803760], [175733.0, 1431803820], [175839.0, 1431803880], [175839.0, 1431803940], [175245.0, 1431804000], [175217.0, 1431804060], [175629.0, 1431804120], [175104.0, 1431804180], [175104.0, 1431804240], [175505.0, 1431804300]]}]
जिसे मैं पूरा करने की कोशिश कर रहा हूं
मैंने एक पायथन स्क्रिप्ट बनाई है, जो हाल के डेटा पॉइंट्स को प्राप्त करती है, ऐतिहासिक बदलाव और अलर्ट के साथ उनकी तुलना करती है अगर कोई अचानक बदलाव या ड्रॉप होता है। मौसमी "स्थैतिक" सीमा के कारण अच्छी तरह से काम नहीं करता है और स्क्रिप्ट झूठी-सकारात्मक अलर्ट उत्पन्न करती है। मैं और अधिक सटीक होने के लिए एक अलर्टिंग एल्गोरिथ्म में सुधार करना चाहता हूं और अलर्ट थ्रेसहोल्ड को लगातार बनाए बिना इसे काम करना चाहता हूं।
मुझे जो सलाह की जरूरत है और जो चीजें मैंने खोजी हैं
Googling द्वारा मुझे लगा कि मैं विसंगति का पता लगाने के लिए मशीन लर्निंग एल्गोरिदम की तलाश कर रहा हूं (अनसुना)। आगे की जांच से पता चला कि उनमें से कई टन हैं और यह समझना बहुत मुश्किल है कि मेरे मामले में कौन सा लागू है। अपने सीमित गणित ज्ञान के कारण मैं परिष्कृत विद्वानों के पेपर नहीं पढ़ सकता हूं और क्षेत्र में शुरुआती के लिए कुछ सरल तलाश रहा हूं।
मैं पायथन को पसंद करता हूं और आर के साथ थोड़ा परिचित हूं, इसलिए मैं इन भाषाओं के लिए उदाहरण देखकर खुश हूं। कृपया एक अच्छी किताब या लेख की सिफारिश करें जिससे मुझे अपनी समस्या को हल करने में मदद मिलेगी। आपके समय के लिए धन्यवाद और मुझे इस तरह के लंबे विवरण के लिए क्षमा करें
उपयोगी कड़ियाँ
इसी तरह के सवाल:
- समय श्रृंखला और विसंगति का पता लगाने
- टाइम सीरीज़ एनोमली डिटेक्शन विथ पायथन
- समय श्रृंखला विसंगतियों
- टाइम सीरीज़ एनोमली डिटेक्शन के लिए एल्गोरिदम
- समय-श्रृंखला-आधारित विसंगति का पता लगाने वाले एल्गोरिदम के लिए तरंगिकाओं का अनुप्रयोग
- मुझे किस एल्गोरिथ्म का उपयोग करना चाहिए?
बाहरी संसाधन:
auto.arima
आर के उत्कृष्ट forecast
पैकेज ( jstatsoft.org/v27/i03/paper देखें ) से फ़ंक्शन का उपयोग करके लगातार आवधिक पूर्वानुमान का निर्माण करके अलर्ट स्थापित करना था । आप level
पैरामीटर को समायोजित करके आत्मविश्वास के स्तर को ट्यून कर सकते हैं , जैसे data.model <- auto.arima(data.zoo, ic = c("bic")); data.prediction.warningLimits <- forecast(data.model, h=1, level=0.99)
।