मॉडल्स का एन्सेम्बलिंग
मशीन लर्निंग मॉडलों की भविष्यवाणी बेहतर करने का एक तरीका एन्सेम्बलिंग है। एक बेसिक तरीका यह है कि कई मॉडलों की भविष्यवाणियों का औसत ले लिया जाए। एक अधिक जटिल तरीका यह है कि मॉडलों की भविष्यवाणियों को किसी दूसरे मॉडल में इनपुट दिया जाए, जो अंतिम भविष्यवाणी करे। दोनों तरीके आमतौर पर हमारी कुल परफॉर्मेंस बेहतर करते हैं (बशर्ते हमारे व्यक्तिगत मॉडल अच्छे हों)। अगर आप याद करें, रैंडम फॉरेस्ट भी कई डिसीजन ट्रीज़ का एन्सेम्बलिंग ही है.
हमारे न्यूरल नेट की भविष्यवाणियों का एन्सेम्बल बनाने के लिए, हम अभी बनाए गए 3 मॉडलों से भविष्यवाणियाँ करेंगे — बेसिक मॉडल, कस्टम लॉस फंक्शन वाला मॉडल, और ड्रॉपआउट वाला मॉडल। फिर हम इन भविष्यवाणियों को numpy के .hstack() फंक्शन से हॉरिज़ॉन्टली जोड़ेंगे, और पंक्तियों पर औसत निकालने के लिए np.mean(predictions, axis=1) का उपयोग करेंगे.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Finance के लिए Machine Learning
अभ्यास निर्देश
.predict()मेथड का उपयोग करके, हमने जो 3 मॉडल फिट किए हैं (model_1,model_2,model_3), उनके लिएscaled_train_featuresऔरscaled_test_featuresपर भविष्यवाणियाँ बनाइए.- भविष्यवाणियों को हॉरिज़ॉन्टली स्टैक करके (
np.hstack()) एक मैट्रिक्स बनाइए, और पंक्ति-वार औसत लेकर train और test सेट के लिए औसत भविष्यवाणियाँ प्राप्त कीजिए.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Make predictions from the 3 neural net models
train_pred1 = model_1.predict(____)
test_pred1 = model_1.predict(____)
train_pred2 = ____
test_pred2 = ____
train_pred3 = model_3.predict(scaled_train_features)
test_pred3 = model_3.predict(scaled_test_features)
# Horizontally stack predictions and take the average across rows
train_preds = np.mean(np.hstack((train_pred1, train_pred2, train_pred3)), axis=1)
test_preds = np.mean(____, ____)
print(test_preds[-5:])