我只是想确保我在正确的路线上,所以如果错了请纠正我。我正在测试哪些超参数最适合我的数据 X、y 的逻辑回归,其中 X 是特征,y 是目标。X, y 来自我的训练集。我也有一个测试集。
from sklearn.linear_model import LogisticRegression
# split train into target and features
y = Train['target']
X = Train.drop(['target'], axis = 1)
X = pd.get_dummies(X)
#split test data into target and features
y_test = Test['target']
X_test = Test.drop(['target'], axis = 1)
X_test = pd.get_dummies(X_test)
logistic = LogisticRegression() # initialize the model
# Create regularization penalty space
param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000] }
clf=GridSearchCV(logistic,param_grid=param_grid,cv=5)
best_model = clf.fit(X, y)# View best hyperparameters
print('Best Penalty:', best_model.best_estimator_.get_params()['penalty'])
print('Best C:', best_model.best_estimator_.get_params()['C']) #
我现在将使用这些超参数并在我的训练数据上“训练”它。所以我确定当我们说训练时,我会采用 best_model 并在整个 X 数据上进行训练。然后我使用我的 X_test,这是我在这个新训练模型上的保留数据:
bestLog=best_model.best_estimator_
trained_model=bestLog.fit(X,y)
predicted=trained_model.predict(X_test)
然后使用上面的这个输出作为我的最终模型来测试?