Shuffling के साथ Cross-validation
जैसा कि आप याद करेंगे, cross-validation वह प्रक्रिया है जिसमें आप अपने डेटा को कई बार training और test सेट में बाँटते हैं. हर बार, आप अलग training और test सेट चुनते हैं. इस अभ्यास में, आप पहले वाले कंपनी वैल्यू डेटा पर पारंपरिक ShuffleSplit cross-validation करेंगे. आगे हम देखेंगे कि time series डेटा के लिए क्या बदलाव करने पड़ते हैं. यहाँ उपयोग किया गया डेटा कई बड़ी कंपनियों के historical price डेटा जैसा ही है.
Linear regression ऑब्जेक्ट (model) का एक इंस्टैंस आपके workspace में उपलब्ध है, साथ ही स्कोरिंग के लिए r2_score() फंक्शन भी. डेटा X और y ऐरे में संग्रहीत है. परिणामों को विज़ुअलाइज़ करने के लिए हमने एक helper फंक्शन (visualize_predictions()) भी दिया है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Time Series Data के लिए Machine Learning
अभ्यास निर्देश
- 10 splits के साथ एक ShuffleSplit cross-validation ऑब्जेक्ट initialize करें.
- इस ऑब्जेक्ट का उपयोग करके CV splits पर iterate करें. हर iteration में:
- training indices का उपयोग करके मॉडल फिट करें.
- test indices का उपयोग करके predictions जनरेट करें, इन predictions से मॉडल का स्कोर (\(R^2\)) निकालें, और परिणाम इकट्ठा करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Import ShuffleSplit and create the cross-validation object
from sklearn.model_selection import ShuffleSplit
cv = ____(____, random_state=1)
# Iterate through CV splits
results = []
for tr, tt in cv.____(X, y):
# Fit the model on training data
____(X[tr], y[tr])
# Generate predictions on the test data, score the predictions, and collect
prediction = ____(X[tt])
score = r2_score(____, ____)
results.append((prediction, score, tt))
# Custom function to quickly visualize predictions
visualize_predictions(results)