मानक k fold rows को बेतरतीब ढंग से k हिस्सों में बांटता है, k घटा एक पर train करता है और बचे हुए fold पर validate करता है, फिर औसत लेता है। time series के साथ यह गलत है, क्योंकि बेतरतीब splits model को भविष्य पर train करके अतीत की भविष्यवाणी करने देते हैं। इसकी जगह forward chaining इस्तेमाल करें: समय t तक की हर चीज पर train करें, अगली window पर validate करें, आगे बढ़ते जाएं, और अगर features trailing windows इस्तेमाल करते हैं तो बीच में एक gap छोड़ें।
इंटरव्यूअर यह क्यों पूछते हैं
समय के रास्ते होने वाला leakage उन सबसे आम वजहों में से है जिनकी वजह से model offline शानदार दिखता है और production में मर जाता है, इसलिए इंटरव्यूअर इससे देखते हैं कि आप यह सोचते हैं या नहीं कि model असल में इस्तेमाल कैसे होगा। वे यह भी सुनते हैं कि rows स्वतंत्र न होने पर, जैसे एक ही customer की कई rows, आप grouped splitting करते हैं या नहीं, और यह भी कि preprocessing आप पूरे dataset पर fit करते हैं या हर fold के अंदर।
अपना जवाब कैसे स्ट्रक्चर करें
- सादे k fold को एक लाइन में बताएं।
- समझाएं कि जब समय मायने रखता है तो बेतरतीब splits leak क्यों करते हैं।
- forward chaining और train व validation के बीच के gap को बताएं।
- दोहराई जाने वाली entities के लिए grouped splits और fold स्तर की preprocessing जोड़ें।
उदाहरण जवाब
सामान्य k fold rows को मिलाकर folds में बांटता है और बारी बारी एक को holdout रखता है। जब rows स्वतंत्र हों तब यह ठीक है, और जिस पल वे स्वतंत्र नहीं रहतीं, यह बिखर जाता है। time series के साथ मैं forward chaining इस्तेमाल करता हूं: महीना एक से छह पर train, सात पर validate, फिर सात तक train और आठ पर validate, और ऐसे ही आगे। validation हमेशा training window के बाद बैठता है, जो इस बात से मेल खाता है कि model इस्तेमाल कैसे होगा। जब मेरे features trailing windows इस्तेमाल करते हैं तो मैं एक gap भी छोड़ता हूं, क्योंकि सीमा पर ठीक ठीक निकाला गया तीस दिन का rolling average चुपचाप validation दौर की जानकारी अपने अंदर रखता है। दूसरा जाल है दोहराई जाने वाली entities। अगर एक customer की चालीस rows हैं और वे train और validation दोनों में गिर जाती हैं, तो model उस customer को रट सकता है और स्कोर फूल जाता है, इसलिए मैं customer ID से group करता हूं। और मैं scalers तथा encoders हर fold के अंदर fit करता हूं, कभी पहले पूरे dataset पर नहीं, क्योंकि सब कुछ पर fit करने से validation का distribution training में leak हो जाता है। अकेले इसी बात ने मेरे लिए offline और live के बीच के दो एक अंक के फर्क की वजह समझाई है।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- आप कितने folds इस्तेमाल करते हैं, और क्यों?
- nested cross validation क्या है और इसकी जरूरत कब पड़ती है?
- साल में कुछ ही बार होने वाली दुर्लभ घटना की भविष्यवाणी करने वाले model को आप कैसे validate करेंगे?
डेटा साइंटिस्ट के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें