प्रज़ेंटेशन: अच्छी सुविधाओं की क्वालिटी

हमने ऐसे तरीके ढूंढे हैं जिनसे रॉ डेटा को सही फ़ीचर वेक्टर में मैप किया जा सके. हालांकि, यह काम का सिर्फ़ एक हिस्सा है. अब हमें यह पता लगाना होगा कि उन फ़ीचर वेक्टर में किस तरह के मान असल में अच्छी सुविधाएं देते हैं.

बहुत कम इस्तेमाल होने वाली अलग-अलग सुविधाओं की वैल्यू से बचना

किसी डेटा सेट में अच्छी सुविधा की वैल्यू पांच से ज़्यादा बार दिखाई देनी चाहिए. ऐसा करने से, मॉडल को यह जानने में मदद मिलती है कि सुविधा का यह मान लेबल से किस तरह जुड़ा है. इसका मतलब है कि एक ही अलग वैल्यू वाले कई उदाहरण होने से, मॉडल को सुविधा को अलग-अलग सेटिंग में देखने का मौका मिलता है. साथ ही, इससे यह तय किया जाता है कि यह लेबल के लिए कब अच्छा अनुमान लगाता है. उदाहरण के लिए, किसी house_type सुविधा में ऐसे कई उदाहरण हो सकते हैं जिनमें उसकी वैल्यू victorian थी:

house_type: victorian

वहीं, अगर किसी सुविधा की वैल्यू सिर्फ़ एक बार या बहुत कम दिखती है, तो मॉडल उस सुविधा के आधार पर अनुमान नहीं लगा सकता. उदाहरण के लिए, unique_house_id खराब सुविधा है. ऐसा इसलिए, क्योंकि हर वैल्यू का इस्तेमाल सिर्फ़ एक बार किया जाएगा. इसलिए, मॉडल इससे कुछ भी नहीं सीख सकता:

unique_house_id: 8SK982ZZ1242Z

साफ़ और आसान शब्दों को प्राथमिकता दें

प्रोजेक्ट में शामिल सभी लोगों के लिए, हर सुविधा का मतलब साफ़ तौर पर और साफ़ तौर पर दिखना चाहिए. उदाहरण के लिए, इस अच्छी सुविधा का नाम साफ़ तौर पर बताया गया है और वैल्यू से नाम के बारे में पता चलता है:

 house_age_years: 27 

इसके ठीक उलट, इस सुविधा के मान का मतलब कोई और समझ नहीं पाता है, लेकिन इसे बनाने वाले इंजीनियर को समझ नहीं आता है:

house_age: 851472000

कुछ मामलों में, खराब इंजीनियरिंग विकल्पों के बजाय शोर वाले डेटा की वजह से वैल्यू साफ़ नहीं होती हैं. उदाहरण के लिए, नीचे दिया गया user_age_years ऐसे स्रोत से आया है जिसने सही वैल्यू की जांच नहीं की थी:

user_age_years: 277

"जादू" वैल्यू को असल डेटा के साथ न मिलाएं

फ़्लोटिंग-पॉइंट की अच्छी सुविधाओं में ऐसी वैल्यू नहीं होती हैं जो रेंज से बाहर की हों. उदाहरण के लिए, मान लीजिए कि किसी सुविधा में फ़्लोटिंग-पॉइंट की वैल्यू 0 और 1 के बीच होती है. इसलिए, इस तरह की वैल्यू ठीक हैं:

quality_rating: 0.82
quality_rating: 0.37

हालांकि, अगर उपयोगकर्ता ने quality_rating नहीं डाला है, तो शायद डेटा सेट अपने न होने को इस तरह के मैजिक वैल्यू से दिखाता हो:

quality_rating: -1

मैजिक वैल्यू को साफ़ तौर पर मार्क करने के लिए, बूलियन सुविधा बनाएं. इससे यह पता चलेगा कि quality_rating दिया गया है या नहीं. इस बूलियन सुविधा को is_quality_rating_defined जैसा नाम दें.

ओरिजनल सुविधा में, मैजिक वैल्यू को इस तरह बदलें:

  • जिन वैरिएबल में वैल्यू का सीमित सेट (अलग-अलग वैरिएबल) होता है उनके लिए, सेट में एक नई वैल्यू जोड़ें. साथ ही, इसका इस्तेमाल यह बताने के लिए करें कि सुविधा की वैल्यू मौजूद नहीं है.
  • लगातार वैरिएबल के लिए, पक्का करें कि जो वैल्यू मौजूद नहीं हैं वे सुविधा के डेटा की मीन वैल्यू का इस्तेमाल करके मॉडल पर असर न डालें.

अपस्ट्रीम अस्थिरता की वजह

किसी सुविधा की परिभाषा समय के साथ नहीं बदलनी चाहिए. उदाहरण के लिए, यह वैल्यू काम की है, क्योंकि शायद शहर का नाम नहीं बदलेगा. (ध्यान दें कि हमें अब भी "br/sao_paulo" जैसी स्ट्रिंग को वन-हॉट वेक्टर में बदलना होगा.)

city_id: "br/sao_paulo"

हालांकि, किसी दूसरे मॉडल से अनुमानित वैल्यू इकट्ठा करने के लिए, अतिरिक्त शुल्क देना पड़ता है. शायद "219" वैल्यू फ़िलहाल साओ पाओलो को दिखाती है, लेकिन यह अनुमान आने वाले समय में दूसरे मॉडल के चलने पर आसानी से बदल सकता है:

inferred_city_cluster: "219"