मैं सॉफ्टवेयर बिल्ड के लिए आंकड़ों पर काम कर रहा हूं। मेरे पास पास / असफल और बीते हुए समय पर प्रत्येक निर्माण के लिए डेटा है और हम इन / सप्ताह के ~ 200 उत्पन्न करते हैं।
सफलता की दर कुल मिलाकर आसान है, मैं कह सकता हूं कि किसी भी सप्ताह 45% पारित किया गया। लेकिन मैं बीता हुआ समय भी पूरा करना चाहता हूं, और मैं यह सुनिश्चित करना चाहता हूं कि मैं डेटा को बहुत बुरी तरह से गलत तरीके से पेश न करूं। मुझे लगता है मैं पेशेवरों से पूछना बेहतर होगा :-)
कहो मेरे पास 10 अवधि है। वे पास और फेल दोनों मामलों का प्रतिनिधित्व करते हैं। कुछ बिल्ड तुरंत विफल हो जाते हैं, जिससे अवधि असामान्य रूप से कम हो जाती है। कुछ परीक्षण के दौरान लटके रहते हैं और अंततः समय निकल जाते हैं, जिससे बहुत लंबी अवधि हो जाती है। हम अलग-अलग उत्पाद बनाते हैं, इसलिए सफल बिल्ड 90 सेकंड और 4 घंटे के बीच भिन्न होते हैं।
मुझे इस तरह का एक सेट मिल सकता है:
[50, 7812, 3014, 13400, 21011, 155, 60, 8993, 8378, 9100]
मेरा पहला दृष्टिकोण सेट को छांट कर और मध्य-मूल्य को उठाकर माध्य समय प्राप्त करना था, इस मामले में 7812 (मैं सम-सेट सेट के लिए अंकगणितीय माध्य से परेशान नहीं था।)
दुर्भाग्य से, यह बहुत भिन्नता उत्पन्न करता है, क्योंकि मैं केवल एक दिए गए मूल्य को निकालता हूं। इसलिए अगर मैं इस मूल्य को ट्रेंड करता तो यह लगभग 5000-10000 सेकेंड के बीच उछलता, जिसके आधार पर मंझला था।
इसलिए इसे सुचारू करने के लिए, मैंने एक और तरीका आजमाया - आउटलेर्स को हटा दें और फिर शेष मूल्यों पर एक माध्य की गणना करें। मैंने इसे कछुओं में विभाजित करने का फैसला किया और केवल बीच पर काम किया:
[50, 60, 155, 3014, 7812, 8378, 8993, 9100, 13400, 21011] ->
[50, 60, 155], [3014, 7812, 8378, 8993], [9100, 13400, 21011] ->
[3014, 7812, 8378, 8993]
यह मेरे लिए बेहतर लगता है कारण दो गुना है:
- हम तेज निर्माण पर कोई कार्रवाई नहीं चाहते हैं, वे पहले से ही ठीक हैं
- सबसे लंबे समय तक निर्मित होने की संभावना टाइमआउट से प्रेरित होती है, और हमेशा रहेगी। हमारे पास उन का पता लगाने के लिए अन्य तंत्र हैं
तो यह मुझे लगता है कि यह वह डेटा है जिसकी मैं तलाश कर रहा हूं, लेकिन मुझे चिंता है कि मैंने इसे हटाकर, अच्छी तरह से, सच्चाई से चिकनाई हासिल की है।
क्या यह विवादास्पद है? क्या विधि समझदार है?
धन्यवाद!