डेटा को स्टैंडर्डाइज़ करना
कुछ मॉडल, जैसे K-nearest neighbors (KNN) और न्यूरल नेटवर्क, स्केल किए हुए डेटा के साथ बेहतर काम करते हैं — इसलिए हम अपना डेटा स्टैंडर्डाइज़ करेंगे।
हम फीचर इम्पॉर्टेंस के आधार पर गैर-ज़रूरी वैरिएबल्स (सप्ताह का दिन) भी हटाएँगे, इसके लिए फीचर्स DataFrames को .iloc[] से इंडेक्स किया जाएगा। KNN भविष्यवाणी के लिए मिलते-जुलते पॉइंट खोजने में distances का उपयोग करता है, इसलिए बड़े स्केल वाले फीचर्स छोटे वाले पर हावी हो जाते हैं। डेटा को स्केल करने से यह दिक्कत दूर होती है।
sklearn का scale() डेटा को स्टैंडर्डाइज़ करेगा, जिससे mean 0 और standard deviation 1 हो जाता है। आदर्श रूप से हमें training डेटा पर StandardScaler के साथ fit_transform() और test डेटा पर fit() का उपयोग करना चाहिए, लेकिन यहाँ हम 15 पंक्तियों के कोड तक सीमित हैं।
डेटा को स्केल करने के बाद, हम हिस्टोग्राम प्लॉट करके जाँचेंगे कि यह सही से काम किया या नहीं।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Finance के लिए Machine Learning
अभ्यास निर्देश
.ilocका उपयोग करके train/test फीचर्स से सप्ताह के दिन वाले फीचर्स हटाएँ (सप्ताह के दिन आखिरी 4 फीचर्स हैं)।- sklearn के
scale()सेtrain_featuresऔरtest_featuresको स्टैंडर्डाइज़ करें; स्केल किए हुए फीचर्स कोscaled_train_featuresऔरscaled_test_featuresमें सहेजें। - पहले subplot (
ax[0]]) पर unscaledtrain_featuresसे 14-day RSI moving average (इंडेक्स[:, 2]) का हिस्टोग्राम प्लॉट करें। - दूसरे subplot (
ax[1]) पर standardized 14-day RSI moving average का हिस्टोग्राम प्लॉट करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
from sklearn.preprocessing import scale
# Remove unimportant features (weekdays)
train_features = train_features.iloc[:, :-4]
test_features = test_features.____
# Standardize the train and test features
scaled_train_features = scale(train_features)
scaled_test_features = ____
# Plot histograms of the 14-day SMA RSI before and after scaling
f, ax = plt.subplots(nrows=2, ncols=1)
train_features.iloc[:, 2].hist(ax=____)
ax[1].hist(scaled_train_features[:, 2])
plt.show()