मैं हाल ही में एक समान समस्या में भाग गया: एक बड़े डेटासेट से विभिन्न प्रकार की सुविधाओं को निकालने का प्रबंधन कैसे करें, यह जानने के बिना कि उनमें से सभी क्या होंगे। (यहां तक कि बार-बार गणना मूल्यों का कम्प्यूटेशनल रूप से महंगा होगा।) आगे, मैं विभिन्न फीचर सेटों के आधार पर भविष्यवाणियों का प्रबंधन कैसे करूंगा? मतलब, अगर मैंने एक नई सुविधा जोड़ी, तो मुझे कैसे पता चलेगा कि कौन से मॉडल नई विशेषताओं पर प्रशिक्षित होंगे? यह जल्दी से एक बड़ी गड़बड़ में स्नोबॉल कर सकता है।
मेरा वर्तमान समाधान यह सब एक स्थानीय NoSQL डेटाबेस (MongoDB) में ट्रैक करना है। उदाहरण के लिए, मेरे पास एक संग्रह हो सकता है features
, जिसमें से प्रत्येक प्रविष्टि में एक नाम है, यह वर्णन किया गया है कि सुविधा की गणना कैसे की गई थी, अजगर फ़ाइल जो निष्कर्षण चलाती थी, आदि।
इसी तरह, एक संग्रह models
में डेटा पर चलने वाले मॉडल शामिल हैं। प्रत्येक प्रविष्टि में एक नाम, उन विशेषताओं की एक सूची हो सकती है जिनका उपयोग मॉडल को प्रशिक्षित करने के लिए किया गया था, इसके अंतिम पैरामीटर, आयोजित किए गए परीक्षण सेट पर मूल्यों की भविष्यवाणी की, मॉडल कैसे प्रदर्शन किया आदि।
मेरी सहूलियत की दृष्टि से, इसके कई लाभ हैं:
- भविष्यवाणियों को सहेजने से, मैं उन्हें बाद में भविष्यवाणियों में उपयोग कर सकता हूं।
- क्योंकि मैं इस बात का ध्यान रखता हूं कि किन विशेषताओं का उपयोग किया गया था, मुझे पता है कि मुझे कौन सी सुविधाएँ वापस लेने की आवश्यकता है क्योंकि मैं और अधिक सुविधाएँ निकालता हूँ।
- मॉडल विवरण सहेजने से, मैं सुनिश्चित करता हूं कि मुझे हमेशा पता है कि मैंने क्या कोशिश की है। मुझे कभी आश्चर्य नहीं हुआ, "क्या मैंने ग्रिड-सर्च सीवी द्वारा निर्धारित नियमितीकरण मापदंडों के साथ LASSO की कोशिश की है?" मैं हमेशा इसे देख सकता हूं, और देख सकता हूं कि यह कितना सफल रहा।
आपके प्रश्न से, ऐसा लगता है कि आप अपनी समस्या के वर्कफ़्लो में इस दृष्टिकोण को अनुकूलित कर सकते हैं। मानगो या पसंद का एक और डेटाबेस स्थापित करें, और फिर प्रत्येक प्रायोगिक रन, उसके इनपुट, उसके परिणाम, और कुछ भी आप परियोजना के दौरान ट्रैक करने की इच्छा रख सकते हैं। स्प्रेडशीट की तुलना में यह क्वेरी के लिए बहुत आसान होना चाहिए, कम से कम।