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

इनपुट ट्रांसफ़ॉर्म: "हॉकी स्टिक"

इस अभ्यास में, हम एक मॉडल बनाएँगे जो घर के आकार (सतह क्षेत्र) के माप से कीमत की भविष्यवाणी करेगा. आपके लिए लोड किया गया houseprice डेटासेट इन कॉलमों के साथ आता है:

  • price: घर की कीमत, $1000 की इकाइयों में
  • size: सतह क्षेत्र

डेटा का एक स्कैटरप्लॉट दिखाता है कि संबंध काफ़ी नॉन-लिनियर है: कुछ-कुछ "हॉकी-स्टिक" जैसा, जहाँ छोटे घरों के लिए कीमत लगभग सपाट रहती है, लेकिन जैसे-जैसे घर बड़ा होता है कीमत तेज़ी से बढ़ती है. ऐसे हॉकी-स्टिक जैसे संबंधों को व्यक्त करने के लिए क्वाड्रेटिक और क्यूबिक फ़ंक्शन अक्सर अच्छे रहते हैं. ध्यान दें कि ज़रूरी नहीं कि price का size के स्क्वेयर से कोई "भौतिक" कारण से संबंध हो; क्वाड्रेटिक बस देखे गए संबंध का एक क्लोज़्ड-फ़ॉर्म एप्रॉक्सिमेशन है.

scatterplot

आप size के स्क्वेयर के फ़ंक्शन के रूप में price की भविष्यवाणी करने के लिए एक मॉडल फिट करेंगे, और उसके प्रशिक्षण डेटा पर फ़िट को देखेंगे.

क्योंकि ^ इंटरैक्शन दर्शाने का भी एक सिंबल है, इसलिए I() (docs) फ़ंक्शन का उपयोग करें ताकि x^2 अभिव्यक्ति को "जैसा है वैसा" लिया जाए: अर्थात् x के स्वयं से इंटरैक्शन की जगह x का स्क्वेयर माना जाए.

exampleFormula = y ~ I(x^2)

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

R में Supervised Learning: Regression

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

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

  • एक फ़ॉर्मूला fmla_sqr लिखें जो price को size के स्क्वेयर के फ़ंक्शन के रूप में व्यक्त करे. उसे प्रिंट करें.
  • fmla_sqr का उपयोग करके डेटा पर model_sqr मॉडल फिट करें.
  • तुलना के लिए, फ़ॉर्मूला price ~ size से एक लिनियर मॉडल model_lin फिट करें.
  • खाली जगहें भरें ताकि
    • दोनों मॉडलों से प्रशिक्षण डेटा पर प्रेडिक्शन बन सकें,
    • pivot_longer() का उपयोग करके प्रेडिक्शंस को एक ही कॉलम pred में पिवट किया जा सके,
    • और डेटा के साथ दोनों मॉडलों की प्रेडिक्शंस की ग्राफ़िकल तुलना हो सके. कौन सा बेहतर फिट होता है?

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

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

# houseprice is available
summary(houseprice)

# Create the formula for price as a function of squared size
(fmla_sqr <- ___)

# Fit a model of price as a function of squared size (use fmla_sqr)
model_sqr <- ___

# Fit a model of price as a linear function of size
model_lin <- ___

# Make predictions and compare
houseprice %>% 
    mutate(pred_lin = ___(___),       # predictions from linear model
           pred_sqr = ___(___)) %>%   # predictions from quadratic model
    pivot_longer(cols = c('pred_lin', 'pred_sqr'), names_to = 'modeltype', values_to = 'pred') %>% # pivot the predictions
    ggplot(aes(x = size)) + 
       geom_point(aes(y = ___)) +                   # actual prices
       geom_line(aes(y = ___, color = modeltype)) + # the predictions
       scale_color_brewer(palette = "Dark2")
कोड संपादित करें और चलाएँ