I'm trying to find the best parameter for the lasso polynomial especially : the degree of the polynomial, alpha and max_iteration, using OPTUNA, however i'm getting this error message :
ValueError: Invalid parameter degree for estimator Pipeline(steps=[('poly', PolynomialFeatures()), ('linear', Lasso())]). Check the list of available parameters with `estimator.get_params().keys()`.
I used K-cross-validation and this is the code :
model = Pipeline([('poly', PolynomialFeatures()),('linear',Lasso())])```
def run(trial): scores =[] for fold in range(5): param_grid = { "degree": trial.suggest_int("degree", 2, 5), 'alpha': trial.suggest_float("alpha", 0.01, 0.3), 'max_iter':trial.suggest_int('max_iter', 1000, 4000)
}
xtrain = df[df.kfold != fold].reset_index(drop=True)
xvalid = df[df.kfold == fold].reset_index(drop=True)
ytrain = xtrain.target
yvalid = xvalid.target
xtrain = xtrain[useful_features]
xvalid = xvalid[useful_features]
model.set_params(**param_grid)
model.fit(xtrain, ytrain)
preds_valid = model.predict(xvalid)
rmse = mean_squared_error(yvalid, preds_valid, squared=False)
scores.append(rmse)
return np.mean(scores)
study = optuna.create_study(direction="minimize")
study.optimize(run, n_trials=100)