请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

网格搜索将训练集验证集放在一块调参,再一起训练模型,这样对吗?会发生过拟合吗?

老师,您好!
我之前按照网上的例子,将训练集和验证集捆绑在一起,然后调参、训练模型。请问这样对吗?有人说验证集不能参与到模型的构建当中。谢谢!
下图是网页的例子https://www.jianshu.com/p/55b9f2ea283b
图片描述
这是我的代码:

# 网格搜索
from sklearn.model_selection import GridSearchCV
X_train, X_test, y_train, y_test = train_test_split(f_v, l_v, random_state=9, test_size=0.2) #f_v代表特征全部样本数据
clf = RandomForestClassifier(random_state=80,oob_score=True)
grid_values = {'n_estimators':[10, 100, 200, 300], 'max_features':[None, 'auto']}
grid_clf_acc = GridSearchCV(clf, param_grid = grid_values, scoring = 'roc_auc', cv=5)
grid_clf_acc.fit(X_train, y_train)

# 新参数预测值
y_pred_acc = grid_clf_acc.predict(X_test)
fpr,tpr,threshold = roc_curve(y_test, y_pred_acc)

# 模型评估指标
print('Accuracy Score : ' + str(accuracy_score(y_test,y_pred)))
print('Recall Score :   ' + str(recall_score(y_test,y_pred)))
print('F1 Score :       ' + str(f1_score(y_test,y_pred)))
print('AUC :           ', auc(fpr,tpr))

# 逻辑回归(网格搜索)混淆矩阵
confusion_matrix(y_test,y_pred_acc)

谢谢!

正在回答 回答被采纳积分+3

1回答

途索 2019-08-06 09:29:53

同学你好,验证集不是用来训练的。验证集的作用是选择合适的超参用的。网格实验就是用验证集选择合适超参的过程,不能把验证集用于训练。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信