n_neighbors को ऑप्टिमाइज़ करें
अब जबकि हमारे पास स्केल किया हुआ डेटा है, हम KNN मॉडल ट्राई कर सकते हैं। परफॉर्मेंस को अधिकतम करने के लिए, हमें मॉडल के हाइपरपैरामीटर ट्यून करने चाहिए। k-nearest neighbors एल्गोरिदम में हमारे पास केवल एक हाइपरपैरामीटर होता है: n, यानी पड़ोसियों की संख्या। हम यह हाइपरपैरामीटर मॉडल बनाते समय KNeighborsRegressor के साथ सेट करते हैं। पड़ोसियों की संख्या के लिए आर्ग्यूमेंट n_neighbors है.
हम ऐसे मानों की रेंज ट्राई करना चाहते हैं जो सर्वश्रेष्ठ परफॉर्मेंस वाली सेटिंग से गुजरे। आम तौर पर हम 2 पड़ोसियों से शुरू करते हैं और तब तक बढ़ाते हैं जब तक हमारा स्कोरिंग मैट्रिक घटने नहीं लगता। यहाँ हम टेस्ट सेट (scaled_test_features और test_targets) पर .score() मेथड से मिलने वाले R\(^2\) मान का उपयोग n ऑप्टिमाइज़ करने के लिए करेंगे। हम टेस्ट सेट के स्कोर से सबसे अच्छा n तय करेंगे.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Finance के लिए Machine Learning
अभ्यास निर्देश
nके लिए 2 से 12 तक के मानों पर लूप चलाएँ और इसेknnमॉडल मेंn_neighborsके रूप में सेट करें.- मॉडल को ट्रेनिंग डेटा (
scaled_train_featuresऔरtrain_targets) पर फिट करें. - ट्रेन और टेस्ट सेट के लिए
knnमॉडल के.score()मेथड से R\(^2\) मान प्रिंट करें, और टेस्ट सेट पर सबसे अच्छे स्कोर पर ध्यान दें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
from sklearn.neighbors import KNeighborsRegressor
for n in range(____):
# Create and fit the KNN model
knn = KNeighborsRegressor(n_neighbors=____)
# Fit the model to the training data
knn.fit(____, ____)
# Print number of neighbors and the score to find the best value of n
print("n_neighbors =", n)
print('train, test scores')
print(knn.score(scaled_train_features, train_targets))
print(knn.score(____, ____))
print() # prints a blank line