GridSearchCV处理的退出与得分值连接

时间:2018-10-26 15:09:32

标签: python-3.x machine-learning scikit-learn grid-search

我正在使用GridSearchCV根据PolynomialFeature返回的 MSE 找到最佳的LinearRegression()度。

GridSearchCV之前,我首先使用了一个循环,当 MSE > 10K时该循环已停止。 为了节省时间,如何使用GridSearchCV()实现相同类型的“退出循环”

skf2 = StratifiedShuffleSplit(n_splits=4, train_size = 0.8,random_state =63)
start = time.time()

poly_linear = Pipeline([('poly', PolynomialFeatures()),
                      ('Linear', LinearRegression(fit_intercept =False))])

parameters = {'poly__degree': [1,2,3,4,5]}

grid_search_lin = GridSearchCV(poly_linear, parameters, cv=skf2, n_jobs=-1, scoring='mean_squared_error').fit(X_l, Y_l)
print('timer',time.time() - start,'s')

1 个答案:

答案 0 :(得分:0)

GridSearchCV是穷举搜索,也就是说,它会考虑全部个给定的参数([1,2,3,4,5]。我不知道使用GridSearchCV的退出循环的可能性。 如果时间很成问题,则可以(1)减少参数网格的空间,(2)减少cv迭代次数(由n_splits中的skf2管理),(3)使用{ {1}}从网格中随机选择参数。就模型选择质量而言,这都不是一个好的选择,但是无论如何它将花费更少的时间。

此外,不确定为什么您不适合使用拦截器。除非有特定原因,否则最好将截距与回归拟合,因为这样可以减少模型偏差。

希望这会有所帮助