मैं एक लॉजिस्टिक रिग्रेशन का प्रशिक्षण ले रहा हूं और बैगिंग का उपयोग कर रहा हूं। मैं सर्वोत्तम हाइपरपैरामीटर खोजने के लिए ग्रिडसर्च सीवी का उपयोग करना चाहता हूं। मैंने आधार अनुमानक के हाइपरपैरामीटर को दर्शाने के लिए '__' का उपयोग किया है:

from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import BaggingClassifier

param_grid = {
    'base_estimator__C': [1e-15, 1e-10, 1e-8, 1e-4, 1e-3, 1e-2, 1, 5, 10, 20, 50, 100, 1000], # lambdas for regularization
    'max_samples': [0.05, 0.1, 0.2, 0.5], # for bootstrap sampling
    'max_features': [0.3,0.5,0.7,0.9]} 



clf = GridSearchCV(BaggingClassifier(LogisticRegression(penalty='l2'),
                                            n_estimators = 100),
                        param_grid, cv=cv, scoring='f1', return_train_score=True)
clf.fit(x,y)
best_hyperparams = clf.best_params_
best_hyperparams

Results:
{'base_estimator__C': 10, 'max_features': 0.3, 'max_samples': 0.1}

अब जबकि मुझे सर्वोत्तम पैरामीटर मिल गए हैं, मैं इसे फिर से बैगिंग क्लासिफायर में कैसे डालूं? **best_hyperparams का उपयोग करना काम नहीं करता क्योंकि बैगिंग क्लासिफायरियर यह नहीं पहचानता है कि base_estimator__C को आधार अनुमानक, लॉजिस्टिक रिग्रेशन में जाना चाहिए।

best_clf = BaggingClassifier(LogisticRegression(penalty='l2'), n_estimators = 100, **best_hyperparams) # train model with best hyperparams
0
TYL 1 जून 2020, 15:44

1 उत्तर

सबसे बढ़िया उत्तर

आप set_params() बैगिंग क्लासिफायर को इनिशियलाइज़ करने के बाद।

best_clf = BaggingClassifier(LogisticRegression(penalty='l2'), n_estimators = 100)
best_clf.set_params(**best_hyperparams)
1
Vivek Kumar 1 जून 2020, 13:07