首页 > 解决方案 > 如何在测试数据上使用 Pipeline 和 GridSearch 模型?

问题描述

我在训练和验证期间使用Pipline()andGridSearch()来消除数据泄漏。我的问题是,在创建管道并在 GridSearch 中调用它之后,如何在我的测试数据上使用最终返回的模型?使用典型model.predict(...)的就像不使用管道一样简单吗?

但更具体地说,我如何使用这个返回的模型来迭代测试数据并预测循环中的每一行?

创建模型的代码如下:

x,y = balance_dataset(df)
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size = 0.8, random_state = 0)

pipe = Pipeline([('sc', preprocessing.MinMaxScaler()), 
             ('SVM', svm.SVC(decision_function_shape = 'ovr', kernel = 'poly'))])

candidate_parameters = [{'SVM__C': [0.01, 0.1, 1], 'SVM__gamma': [0.01, 0.1, 1] }]

clf = GridSearchCV(estimator = pipe, param_grid = candidate_parameters, cv = 5, n_jobs = -1)
clf.fit(X_train, y_train)

在调用 pipeline 和 GridSearch 之后,是否可以在循环中迭代测试数据,还是流水线模型只能预测整个测试数据集?

标签: machine-learningscikit-learnsvmpipelinegridsearchcv

解决方案


推荐阅读