sklearn gridsearch不能使用验证集导致的过拟合问题

https://stackoverflow.com/questions/31948879/using-explicit-predefined-validation-set-for-grid-search-with-sklearn

 

 

或者用optuna

#### use optuna lib to finetune SVC hyperparameters
if method=='optuna':
import optuna
def objective(trial):
# Define hyperparameter Search Scope
C = trial.suggest_loguniform('C', 0.1, 10)
kernel = trial.suggest_categorical('kernel', ['poly', 'rbf'])
gamma = trial.suggest_loguniform('gamma', 0.01, 1.0)
model = SVC(C=C, kernel=kernel, gamma=gamma)
model.fit(self.x_train_scaled[selected_feas], self.y_train)
y_val_pred = model.predict(self.x_val_scaled[selected_feas])
auc = roc_auc_score(self.y_val, y_val_pred)
return auc
study = optuna.create_study(direction='maximize') ##maximize the auc
study.optimize(objective, n_trials=100)
print("Best parameters:", study.best_params)
best_model = SVC(**study.best_params)
best_model.fit(self.x_train_scaled[selected_feas], self.y_train)
y_test_pred = best_model.predict(self.x_test_scaled[selected_feas])
test_score = roc_auc_score(self.y_test,y_test_pred)
print('test_score:',test_score)

posted @   笨笨和呆呆  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2022-05-31 29. 两数相除
2022-05-31 28. 实现 strStr()——双指针
2022-05-31 pandas 修改单元格数据
2022-05-31 时间戳补齐
点击右上角即可分享
微信分享提示