पायथन में खुला स्रोत विसंगति का पता लगाना


61

समस्या पृष्ठभूमि: मैं एक प्रोजेक्ट पर काम कर रहा हूं, जिसमें आईटी मॉनिटरिंग स्पेस (आईटी स्पेस की मेरी सबसे अच्छी समझ) में पाई जाने वाली लॉग फाइल शामिल हैं। ये लॉग फाइलें टाइम-सीरीज़ डेटा हैं, जिन्हें विभिन्न मापदंडों की सैकड़ों / हजारों पंक्तियों में व्यवस्थित किया गया है। प्रत्येक पैरामीटर संख्यात्मक (फ्लोट) है और प्रत्येक समय बिंदु के लिए एक गैर-तुच्छ / गैर-त्रुटि मान है। मेरा काम मॉनिटर करने के लिए कहा गया है कि विसंगति का पता लगाने के लिए लॉग फाइलें (स्पाइक्स, फॉल्स, असामान्य पैटर्न कुछ मापदंडों के साथ सिंक से बाहर हो रहा है, अजीब 1/2 / आदि। व्युत्पन्न व्यवहार, आदि)।

इसी तरह के असाइनमेंट पर, मैंने स्प्लर्ट के साथ स्प्लंक की कोशिश की है, लेकिन मैं इस समय ओपन-सोर्स विकल्प तलाश रहा हूं।

बाधाएं: मैं खुद को पायथन में सीमित कर रहा हूं क्योंकि मैं इसे अच्छी तरह से जानता हूं, और आर और संबंधित शिक्षण वक्र पर स्विच में देरी करना चाहता हूं। जब तक आर (या अन्य भाषाओं / सॉफ़्टवेयर) के लिए भारी समर्थन प्रतीत नहीं होता है, मैं इस कार्य के लिए पायथन से चिपकना चाहूंगा।

इसके अलावा, मैं इस समय विंडोज वातावरण में काम कर रहा हूं। मैं छोटे आकार की लॉग फ़ाइलों पर विंडोज में सैंडबॉक्स को जारी रखना चाहूंगा लेकिन जरूरत पड़ने पर लिनक्स वातावरण में जा सकता हूं।

संसाधन: मैंने परिणामों के रूप में निम्नलिखित मृत-सिरों की जाँच की है:

  1. धोखाधड़ी का पता लगाने के लिए मशीन लर्निंग एल्गोरिदम को लागू करने के लिए पायथन या आर । यहाँ कुछ जानकारी सहायक है, लेकिन दुर्भाग्य से, मैं सही पैकेज खोजने के लिए संघर्ष कर रहा हूँ क्योंकि:

  2. Twitter का "AnomalyDetection" R में है, और मैं पायथन से चिपकना चाहता हूं। इसके अलावा, पायथन पोर्ट pyculiarity मेरे लिए विंडोज वातावरण में लागू करने में समस्या पैदा करता है।

  3. स्काईलाइन, मेरा अगला प्रयास, लगता है कि बहुत हद तक बंद हो गया है ( जीथूब मुद्दों से )। मैंने इस बात की गहराई से जानकारी नहीं दी है, यह देखते हुए कि ऑनलाइन समर्थन कितना कम है।

  4. scikit-learn मैं अभी भी खोज कर रहा हूं, लेकिन यह बहुत अधिक मैनुअल है। डाउन-द-वीनस दृष्टिकोण मेरे द्वारा ठीक है, लेकिन सीखने के उपकरण में मेरी पृष्ठभूमि कमजोर है, इसलिए स्प्लंक + प्रिलर्ट के समान एल्गोरिदम जैसे तकनीकी पहलुओं के लिए एक ब्लैक बॉक्स जैसा कुछ होगा।

समस्या की परिभाषा और प्रश्न: मैं ऐसे ओपन-सोर्स सॉफ़्टवेयर की तलाश कर रहा हूँ जो मुझे पैकेज या लाइब्रेरी के माध्यम से पायथन में टाइम-सीरीज़ लॉग फ़ाइलों से विसंगति का पता लगाने की प्रक्रिया को स्वचालित करने में मदद कर सके।

  1. क्या मेरे तत्काल कार्य में सहायता करने के लिए ऐसी चीजें मौजूद हैं, या वे मेरे दिमाग में काल्पनिक हैं?
  2. क्या पृष्ठभूमि के मूल सिद्धांतों या अवधारणाओं सहित मुझे अपने लक्ष्य की मदद के लिए कोई ठोस कदम उठा सकता है?
  3. क्या यह सबसे अच्छा StackExchange समुदाय में पूछने के लिए है, या आँकड़े, गणित, या यहां तक ​​कि सुरक्षा या Stackoverflow बेहतर विकल्प हैं?

संपादित करें [2015/07/23] ध्यान दें कि के लिए नवीनतम अद्यतन pyculiarity किया जा रहा है तय Windows वातावरण के लिए! मुझे अभी पुष्टि करना है, लेकिन समुदाय के लिए एक और उपयोगी उपकरण होना चाहिए।

EDIT [2016-01-19] एक मामूली अद्यतन। मेरे पास इस पर काम करने और अनुसंधान के लिए समय नहीं था, लेकिन मैं विशिष्ट विवरणों में शोध जारी रखने से पहले इस समस्या के मूल सिद्धांतों को समझने के लिए एक कदम वापस ले रहा हूं। उदाहरण के लिए, दो ठोस कदम जो मैं ले रहा हूं वे हैं:

  1. विसंगति का पता लगाने के लिए विकिपीडिया लेखों के साथ शुरू [ https://en.wikipedia.org/wiki/Anomaly_detection ], पूरी तरह से समझ, और फिर अन्य लिंक किए गए विकिपीडिया लेखों की अवधारणा पदानुक्रम में ऊपर या नीचे जा रहा है, जैसे कि : https: // en.wikipedia.org/wiki/K-nearest_neighbors_algorithm ], और फिर [ https://en.wikipedia.org/wiki/Machine_learning ] पर।

  2. चंदोला एट अल 2009 "एनोमली डिटेक्शन: ए सर्वे" [ http://www-users.cs.umn.edu/~banerjee/papers/09/anomaly.pdf ] और हॉज एट अल 2004 द्वारा किए गए महान सर्वेक्षणों में तकनीक की खोज। "सर्वे ऑफ आउटलाइयर डिटेक्शन मेथोडोलॉजीज़" [ http://eprints.whiterose.ac.uk/767/1/hodgevj4.pdf ]।

एक बार अवधारणाओं को बेहतर तरीके से समझा जाता है (मैं खिलौना उदाहरणों के साथ खेलने की उम्मीद करता हूं क्योंकि मैं व्यावहारिक पक्ष को विकसित करने के लिए जाता हूं), मुझे यह समझने की उम्मीद है कि मेरी समस्याओं के लिए कौन से खुले स्रोत पायथन उपकरण बेहतर हैं।


अगर आप अभी शुरुआत कर रहे हैं तो मैं इन वीडियो की सलाह देता हूं: github.com/justmarkham/scikit-learn-videos
हार्वे

h2o पुस्तकालय इस मॉड्यूल में आयात नहीं कर रहा है।

1
आपकी समस्या बीमार है। क्या एक विसंगति का गठन विभिन्न अर्थों का एक बहुत हो सकता है। क्या यह माध्य का विचलन है? क्या यह व्यवहार के कुछ पैटर्न हैं? हर मामले में अलग-अलग तरीके लागू होते हैं। यदि आप विसंगति को माध्य से विचलन करते हैं, तो आपको "बाहरी पता लगाने" पर ध्यान देने की आवश्यकता होगी। यदि आप विशिष्ट पैटर्न की तलाश कर रहे हैं, तो आप एक बेहतर शिक्षण एल्गोरिथ्म जैसे तंत्रिका नेटवर्क के साथ बेहतर सेवा करेंगे।
विलेम वैन डोब्सबर्ग

1
मुझे पता है कि आप पायथन चाहते हैं, लेकिन विसंगति का पता लगाने के लिए ELKI उपयोग करने के लिए उपकरण लगता है।
एनोनी-मूस

जवाबों:


35

विसंगति का पता लगाने या घटना का पता लगाने के विभिन्न तरीकों से किया जा सकता है:

मूल मार्ग

व्युत्पन्न! यदि आपके अतीत और भविष्य से आपके संकेत का विचलन अधिक है, तो संभवतः आपके पास एक घटना है। यह संकेत के व्युत्पन्न में बड़े शून्य क्रॉसिंग को ढूंढकर निकाला जा सकता है।

सांख्यिकीय तरीका है

किसी भी चीज का मतलब उसका सामान्य, बुनियादी व्यवहार है। अगर कुछ मतलब से भटकता है तो इसका मतलब है कि यह एक घटना है। कृपया ध्यान दें कि समय-श्रृंखला में इसका मतलब यह नहीं है कि तुच्छ नहीं है और निरंतर नहीं है, लेकिन समय-श्रृंखला में परिवर्तन के अनुसार बदल रहा है, इसलिए आपको औसत के बजाय "चलती औसत" देखने की आवश्यकता है । यह इस तरह दिख रहा है:

मूविंग एवरेज से घटनाएँ 1 मानक विचलन से बड़ी हैं

मूविंग एवरेज कोड यहां पाया जा सकता है । सिग्नल प्रोसेसिंग शब्दावली में आप मूविंग एवरेज लगाकर "लो-पास" फिल्टर लगा रहे हैं।

आप कोड bellow का अनुसरण कर सकते हैं:

MOV = movingaverage(TimeSEries,5).tolist()
STD = np.std(MOV)
events= []
ind = []
for ii in range(len(TimeSEries)):
    if TimeSEries[ii] > MOV[ii]+STD:
        events.append(TimeSEries[ii])

संभाव्य मार्ग

वे मशीन लर्निंग के नए लोगों के लिए विशेष रूप से परिष्कृत हैं। कलामन फ़िल्टर विसंगतियों को खोजने के लिए एक महान विचार है । "अधिकतम-संभावना अनुमान" का उपयोग करते हुए सरल संभाव्य दृष्टिकोण भी अच्छी तरह से काम करता है लेकिन मेरा सुझाव है कि आप औसत विचार के साथ रहें। यह व्यवहार में बहुत अच्छी तरह से काम करता है।

मुझे आशा है कि मैं मदद कर सकता हूँ :) गुड लक!


गहरी चर्चा पर आपके प्रयासों के लिए धन्यवाद। हालांकि यह प्रोग्रामिंग बहुत बुरा नहीं लगता (काफी दिलचस्प है, मैं कह सकता हूं कि एल्गोरिदम में गहरा गोता लगाने के लिए), मैं उन पैकेजों के लिए उत्सुक हूं जो पहले से ही उपलब्ध हैं। क्या आप ऐसी किसी भी चीज़ के बारे में जानते हैं जो मौजूद है जो स्थापित करना आसान है? ध्यान दें कि यह लागू करने के लिए सरल नहीं है, जिसे मैं समझता हूं कि इसकी गारंटी नहीं दी जा सकती है। यदि मैं अपने पर्यावरण को क्रियाशील कर सकता हूं, तो मेरा मानना ​​है कि मैं अपने कार्य के लिए उदाहरणों के आधार पर इसका उपयोग कर सकता हूं।
ximiki

15

h2o में एक विसंगति का पता लगाने वाला मॉड्यूल है और पारंपरिक रूप से कोड R में उपलब्ध है। संस्करण 3 से परे यह समान है जो अजगर में भी उपलब्ध है, और चूंकि h2o खुला स्रोत है, इसलिए यह आपके बिल में फिट हो सकता है।

आप यहां एक काम करने का उदाहरण देख सकते हैं

import sys
sys.path.insert(1,"../../../")
import h2o

def anomaly(ip, port):
    h2o.init(ip, port)

    print "Deep Learning Anomaly Detection MNIST"

    train = h2o.import_frame(h2o.locate("bigdata/laptop/mnist/train.csv.gz"))
    test = h2o.import_frame(h2o.locate("bigdata/laptop/mnist/test.csv.gz"))

    predictors = range(0,784)
    resp = 784

    # unsupervised -> drop the response column (digit: 0-9)
    train = train[predictors]
    test = test[predictors]

    # 1) LEARN WHAT'S NORMAL
    # train unsupervised Deep Learning autoencoder model on train_hex
    ae_model = h2o.deeplearning(x=train[predictors], training_frame=train, activation="Tanh", autoencoder=True,
                                hidden=[50], l1=1e-5, ignore_const_cols=False, epochs=1)

    # 2) DETECT OUTLIERS
    # anomaly app computes the per-row reconstruction error for the test data set
    # (passing it through the autoencoder model and computing mean square error (MSE) for each row)
    test_rec_error = ae_model.anomaly(test)

    # 3) VISUALIZE OUTLIERS
    # Let's look at the test set points with low/median/high reconstruction errors.
    # We will now visualize the original test set points and their reconstructions obtained
    # by propagating them through the narrow neural net.

    # Convert the test data into its autoencoded representation (pass through narrow neural net)
    test_recon = ae_model.predict(test)

    # In python, the visualization could be done with tools like numpy/matplotlib or numpy/PIL

if __name__ == '__main__':
    h2o.run_test(sys.argv, anomaly)

धन्यवाद! मैंने अभी तक इस पैकेज पर विचार नहीं किया है - मैं इसे उम्मीदवारों की सूची में जोड़ दूंगा। स्पष्ट करने के लिए, जब आप कहते हैं "संस्करण 3 से परे यह अजगर में भी समान मॉड्यूल उपलब्ध है", तो क्या आप जानते हैं कि h2o का विसंगति का पता लगाने वाला मॉड्यूल (वेर 3 से परे) पायथन में उपलब्ध है, या कुछ अन्य मॉड्यूल?
ximiki

1
@smik खैर, मैंने उनके नवीनतम संस्करण 3.0.0.26 ( h2o-release.s3.amazonaws.com/h2o/rel-shannon/26/docs-website// ) के पायथन प्रलेखन पर दोबारा गौर किया और ऐसा लगता है कि यह h2o.anomaly नहीं है अभी तक अपने आर api.I've विपरीत उपलब्ध अपने गूगल समूह (में सवाल उठाया groups.google.com/forum/#!topic/h2ostream/uma3UdpanEI ) और आप उस का अनुसरण कर सकते।
0xF

1
खैर, h2o सहायता समूह ने इस सवाल का जवाब दिया है और विसंगति अजगर में भी उपलब्ध है। एक उदाहरण यहां उपलब्ध है। github.com/h2oai/h2o-3/blob/master/h2o-py/tests/testdir_algos/…
0xF

उत्तम! जांच के लिए धन्यवाद। मैं परिणामों के साथ इस पोस्ट को अपडेट करूंगा।
ximiki

1
h2o परीक्षण का लिंक किसी और काम नहीं करता है, लेकिन एक (शायद) समतुल्य है: github.com/h2oai/h2o-3/blob/master/h2o-py/tests/testdr_algos/… (संस्करण के लिए पर्मलिंक ) लिखने के समय में है github.com/h2oai/h2o-3/blob/… )
आंद्रे होल्जनर

11

मैंने हाल ही में एक टूलबॉक्स विकसित किया है: Py thon O utlier D etection toolbox ( PyOD )। गिटहब देखें ।

यह अनुपयोगी और पर्यवेक्षित दोनों दृष्टिकोणों के साथ डेटा में बाहरी वस्तुओं की पहचान करने के लिए डिज़ाइन किया गया है। PyOD के लिए चित्रित किया गया है:

  • विभिन्न एल्गोरिदम भर में एकीकृत एपीआई, विस्तृत प्रलेखन, और इंटरैक्टिव उदाहरण।
  • उन्नत मॉडल, जिनमें न्यूरल नेटवर्क / डीप लर्निंग और आउटलाइयर एनसेंबल शामिल हैं।
  • सुन्न और जॉबलिब का उपयोग करते हुए JIT और समांतरकरण के साथ अनुकूलित प्रदर्शन। दोनों पायथन 2 और 3 के साथ संगत (scikit-learn संगत भी)।

यहाँ कुछ महत्वपूर्ण लिंक दिए गए हैं:

यदि आप एक वैज्ञानिक प्रकाशन में PyOD का उपयोग करते हैं, तो हम निम्नलिखित पेपर के उद्धरणों की सराहना करेंगे

@article{zhao2019pyod,
  title={PyOD: A Python Toolbox for Scalable Outlier Detection},
  author={Zhao, Yue and Nasrullah, Zain and Li, Zheng},
  journal={arXiv preprint arXiv:1901.01588},
  year={2019},
  url={https://arxiv.org/abs/1901.01588}
}

यह वर्तमान में JMLR (मशीन लर्निंग ओपन-सोर्स सॉफ्टवेयर ट्रैक) की समीक्षा के अधीन है । देखें प्रीप्रिंट


त्वरित परिचय

PyOD टूलकिट में कार्यक्षमताओं के तीन प्रमुख समूह होते हैं: (i) बाहरी पहचान एल्गोरिदम; (ii) बाह्य रूपरेखा फ्रेमवर्क और (iii) बाह्य पहचान उपयोगिता कार्य।

व्यक्तिगत जांच एल्गोरिदम :

  • पीसीए : प्रिंसिपल कंपोनेंट एनालिसिस (आइजनवेक्टर हाइपरप्लेन के लिए वेटेड प्रोजेक्टेड डिस्टेंस का योग)
  • MCD : न्यूनतम कोवरियनस निर्धारक (महालानोबिस दूरियों को बाह्य स्कोर के रूप में उपयोग करें)
  • OCSVM : वन-क्लास सपोर्ट वेक्टर मशीनें
  • LOF : स्थानीय बाहरी कारक
  • CBLOF : क्लस्टरिंग-आधारित स्थानीय बाह्य कारक
  • LOCI : LOCI: स्थानीय सहसंबंध अभिन्न का उपयोग करके तेजी से बाहर का पता लगाने
  • HBOS : हिस्टोग्राम-आधारित आउटलाइर स्कोर
  • kNN : k निकटतम पड़ोसी (kth निकटतम पड़ोसी के लिए दूरी का उपयोग करें - ** बाहरी स्कोर)
  • औसत किमी : औसत केएनएन ( आउटलाइन स्कोर के रूप में निकटतम पड़ोसियों के लिए औसत दूरी का उपयोग करें)
  • MedKNN : Median kNN (औसत दूरी के रूप में निकटतम पड़ोसियों के लिए मध्य दूरी का उपयोग करें)
  • एबोड : एंगल-आधारित आउटलाइर डिटेक्शन
  • फास्टैबोड : फास्ट एंगल-बेस्ड आउटलाइयर डिटेक्शन इम्प्लांटेशन का उपयोग करते हुए
  • एसओएस : स्टोचैस्टिक आउटलेर चयन
  • IForest : अलगाव वन
  • फ़ीचर बैजिंग
  • एलएससीपी : एलएससीपी: समानांतर आउटलेर एसेम्बल का स्थानीय रूप से चयनात्मक संयोजन
  • एक्सजीओडीओडी : एक्सट्रीम बूस्टिंग आधारित आउटलाइंग डिटेक्शन (सुपरवाइज्ड)
  • AutoEncoder : पूरी तरह से जुड़ा AutoEncoder (आउटलाइन स्कोर के रूप में पुनर्निर्माण त्रुटि का उपयोग करें)
  • SO_GAAL : सिंगल-ऑब्जेक्टिव जनरेटिव एडवरसैरियल एक्टिव लर्निंग
  • MO_GAAL : मल्टीपल-ऑब्जेक्टिव जेनेरेशन एडवरसरी एक्टिव लर्निंग

बाहरी डिटेक्टर / स्कोर संयोजन रूपरेखा :

  • फ़ीचर बैजिंग
  • एलएससीपी : एलएससीपी: समानांतर आउटलेर एसेम्बल का स्थानीय रूप से चयनात्मक संयोजन
  • औसत : अंकों के औसत से सरल संयोजन
  • भारित औसत : डिटेक्टर भार के साथ स्कोर के औसत से सरल संयोजन
  • अधिकतमकरण : अधिकतम अंक लेकर सरल संयोजन
  • AOM : अधिकतम का औसत
  • एमओए : औसत का अधिकतमकरण

बाहरी पहचान के लिए उपयोगिता कार्य :

  1. score_to_lable (): बाइनरी लेबल के लिए कच्चे बाहरी स्कोर में कनवर्ट करें
  2. परिशुद्धता_n_scores (): आउटलाइंग खनन के लिए लोकप्रिय मूल्यांकन मैट्रिक्स में से एक (परिशुद्धता @ रैंक एन)
  3. जनरेट_डैट (): आउटलेयर डिटेक्शन प्रयोग के लिए छद्म डेटा उत्पन्न करते हैं
  4. wpearsonr (): वेटेड पीयर्सन छद्म जमीनी सचाई में उपयोगी है

सभी कार्यान्वित मॉडलों की तुलना नीचे उपलब्ध कराई गई है: ( चित्र , संहिता , बृहस्पति पुस्तिकाएं ):यहाँ छवि विवरण दर्ज करें

यदि आप रुचि रखते हैं, तो कृपया अधिक जानकारी के लिए Github ( https://github.com/yzhao062/Pyod ) की जाँच करें।


8

मैं इस समय आप की तरह एक ही मंच पर हूं। मैं विसंगति का सबसे अच्छा विकल्प खोज रहा हूं, कुछ शोध कर रहा हूं।

मुझे जो मिला है वह है कि मुझे लगता है कि आपकी ज़रूरत से सबसे अच्छा मेल खाता है और आपने जो देखा है उसकी तुलना में बेहतर है। यानी, TwitterAnomalyDetection, SkyLine।

मैंने पाया है कि नूमेंटा की NAB (Numenta Anomaly Benchmark) बेहतर है। इसका एक बहुत अच्छा सामुदायिक समर्थन भी है और आपके लिए प्लस पॉइंट इसका खुला स्रोत है और अजगर में विकसित किया गया है। आप इसमें अपना एल्गोरिथ्म जोड़ सकते हैं।

एल्गोरिथ्म के मामले में, मैंने पाया कि LOF या CBLOF अच्छे विकल्प हैं।

इसलिए, इसे एक बार देखें। यह आपकी मदद कर सकता है। https://github.com/numenta/nab

अगर आपको बेहतर विकल्प मिल जाए। कृपया मुझे बताओ। मैं भी उसी रास्ते पर हूं।

अच्छी किस्मत!!


बहुमूल्य जानकारी के लिए धन्यवाद! मैं निश्चित रूप से इसकी जांच करूंगा।
ximiki 14

3
मैं बस वापस आना चाहता था और इस पर टिप्पणी करना चाहता था कि NAB मेरी समस्या को कैसे लागू करता है। एकमात्र दोष मैं देख सकता हूं कि यह केवल एकतरफा (एक स्तंभ) समय-श्रृंखला विसंगति का पता लगाने के लिए है, लेकिन बहुभिन्नरूपी (कई स्तंभों) के बारे में क्या है? इस सुझाव के लिए धन्यवाद, मैं इसे समाधान उम्मीदवारों के लिए शॉर्टलिस्ट करने जा रहा हूं।
ximiki

@smiki क्या आपने मल्टीवेरेट टाइम-सीरीज़ के लिए कोई चीज़ पाई। मैं भी इसी तरह की समस्या को देख रहा हूं।
शुभम .3

7

शायद इससे आपको स्थिर अवस्थाओं के बारे में उल्लेख करने में मदद मिलती है: https://github.com/twitter/AnomalyDetection

https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series


1
आपके समय के लिए धन्यवाद, लेकिन कृपया "संसाधन" की मेरी पहली बुलेट देखें; मैंने इस विकल्प की समीक्षा की है, और ऐसी चीज़ की तलाश की है जो मेरे "बाधाओं" को पूरा करती है।
ximiki

1
दोहराना, और शायद अधिक कुंद होना, ट्विटर के AnomalyDetection पैकेज का उपयोग करना यहां कोई विकल्प नहीं है: कृपया "बाधाओं" अनुभाग को और अधिक ध्यान से पढ़ें। मेरा मतलब इस पर मदद करने के लिए किसी भी ईमानदार प्रयास को अस्वीकार करने का नहीं है, लेकिन सवाल पायथन-आधारित पैकेजों के लिए सख्ती से है। इसलिए, भविष्य के मतदाता, कृपया इस उत्तर को न भूलें क्योंकि यह प्रयोग करने योग्य विकल्प नहीं है। मैं डाउनवोटिंग के माध्यम से इसके लिए वर्तमान 2 वोटों को मंजूरी देने की सिफारिश करूंगा लेकिन शायद स्टैटेक्सचेंज समुदाय के भीतर यह अनैतिक है और किसी भी तरह के उतार-चढ़ाव को नहीं पकड़ना चाहता।
ximiki

1
फिर, मैं इस पर वीणा करने के लिए माफी माँगता हूँ, लेकिन मैं बस इस सवाल को बहुत स्पष्ट और दूसरों के लिए एक समान समस्या का सामना करने के लिए प्रयोग करने योग्य बनाने की कोशिश कर रहा हूँ, और उन्हें एक जंगली हंस पीछा नहीं करना चाहता।
ximiki

6

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

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


3

अभी भी स्काईलाइन का एक सक्रिय और विकसित संस्करण है, बस किसी के यहाँ भूमि और दिलचस्पी है।

https://github.com/earthgecko/skyline

https://earthgecko-skyline.readthedocs.io/en/latest

मैं परियोजना का वर्तमान अनुरक्षक हूं और यह अब प्रदर्शन के मामले में, मूल यूटीआई संस्करण की तुलना में बहुत अधिक उन्नत है, प्रदर्शन, यूआई, मौसमी की बेहतर हैंडलिंग और विसंगतियों के डेटाबेस के अतिरिक्त कार्यशीलता, सहसंबंधों की गणना और फिंगरप्रिंट की क्षमता है। और नहीं विषम पैटर्न सीखते हैं।


1

चूंकि आपके पास मल्टीवेरेट समय श्रृंखला है, इसलिए मैं एक LSTM-RNN कार्यान्वयन के लिए जाना जाएगा जो प्रशिक्षण डेटा के आधार पर आपके सिस्टम की गतिशीलता को मॉडल करता है, जो आमतौर पर अर्ध-पर्यवेक्षणीय होते हैं (केवल सामान्य वर्ग शामिल हैं)। इसका मतलब है कि आप अपने मॉडल को यह जानने के लिए प्रशिक्षित करते हैं कि "सामान्य" क्या है। परीक्षण के दौरान, आप सामान्य और विषम दोनों स्थितियों का परीक्षण करते हैं कि यह देखने के लिए कि मॉडल उन्हें कितनी अच्छी तरह बताता है।

तंत्रिका नेटवर्क का एक फायदा यह है कि वे इनपुट सिग्नल के बीच क्रॉस-सहसंबंधों को "स्वयं" सीखते हैं; आपको उन्हें मैन्युअल रूप से एक्सप्लोर करने की आवश्यकता नहीं है। LSTM-RNN, विशेष रूप से, एक आदर्श विकल्प है, जब यह समय श्रृंखला मॉडलिंग की बात आती है, क्योंकि पिछले इनपुटों की स्मृति रखने की क्षमता, नियंत्रण सिद्धांत (यदि आप सादृश्य देखते हैं) में एक राज्य अंतरिक्ष मॉडल के समान है।

अजगर में, यह एक LSTM-RNN का उपयोग कर लागू करने के लिए लगभग तुच्छ है Keras एपीआई (Tensorflow बैकएंड के शीर्ष पर)। यह नेटवर्क इनपुट के एक अनियंत्रित संख्या को दिए गए ब्याज के संकेत (अनुमानों) का अनुमान लगाना सीखता है, जिसे आप वास्तविक मापा मूल्य के साथ तुलना करते हैं। यदि "बड़ा" विचलन है, तो आपको एक विसंगति मिली (यह देखते हुए कि मॉडल पर्याप्त सटीक है)!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.