शुरू करेंमुफ़्त में शुरू करें

टाइम फीचर्स समायोजित करना

इस कोर्स में आपने कई बार देखा है कि ट्रेनिंग के दौरान मॉडल तक अनजाने में अतिरिक्त जानकारी पहुँचना कितना ख़तरनाक हो सकता है. ऐसे डेटा लीकेज से आपके मॉडल के accuracy मेट्रिक्स बहुत आशावादी दिखते हैं, लेकिन जब उस पर वास्तविक डेटा चलाते हैं तो नतीजे अक्सर निराशाजनक होते हैं.

इस अभ्यास में, हम सुनिश्चित करेंगे कि DAYSONMARKET केवल वही जानकारी दिखाए जो हमारे पास प्रेडिक्शन के समय उपलब्ध होती है. यानी, अगर घर अभी भी मार्केट में है, तो हमें यह नहीं पता कि वह और कितने दिन रहेगा. हमें अपने test_df को इस तरह एडजस्ट करना है कि 2017-12-10 तक उपलब्ध जानकारी ही दर्शाए.

नोट: इस उदाहरण में lit() फंक्शन का उपयोग होगा. यह फंक्शन तब काम आता है जब किसी फंक्शन कॉल में पूरी कॉलम की जगह एक सिंगल वैल्यू देनी हो.

यह अभ्यास पाठ्यक्रम का हिस्सा है

PySpark के साथ Feature Engineering

पाठ्यक्रम देखें

अभ्यास निर्देश

  • आगे उपयोग के लिए pyspark.sql.functions से ये फंक्शन इम्पोर्ट करें: datediff(), to_date(), lit().
  • तारीख string '2017-12-10' को PySpark date में बदलें: पहले उस पर literal फंक्शन lit() कॉल करें, फिर to_date() लगाएँ.
  • where() का उपयोग करके OFFMKTDATE जो split_date से बड़ा या बराबर हो और LISTDATE जो split_date से छोटा या बराबर हो, उन्हें फ़िल्टर कर test_df बनाएँ.
  • DAYSONMARKET को रिप्लेस करें: एक नया कॉलम DAYSONMARKET कैल्कुलेट करें, जो split_date और LISTDATE के बीच का अंतर हो. तारीख का यह हिसाब लगाने के लिए datediff() का उपयोग करें. दिए गए कोड से नए और ओरिजिनल कॉलम को देखें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

from pyspark.sql.functions import ____, ____, ____

split_date = ____(____('2017-12-10'))
# Create Sequential Test set
test_df = df.____(df[____] >= ____).____(df[____] <= ____)

# Create a copy of DAYSONMARKET to review later
test_df = test_df.withColumn('DAYSONMARKET_Original', test_df['DAYSONMARKET'])

# Recalculate DAYSONMARKET from what we know on our split date
test_df = test_df.withColumn(____, ____(____, ____))

# Review the difference
test_df[['LISTDATE', 'OFFMKTDATE', 'DAYSONMARKET_Original', 'DAYSONMARKET']].show()
कोड संपादित करें और चलाएँ