【发布时间】:2021-05-30 22:45:57
【问题描述】:
我有尺寸为 (477 x 200) 的输入数据 X_train 和长度为 477 的 y_train。 我想使用支持向量机回归器,并且正在做网格搜索。
param_grid = {'kernel': ['poly', 'rbf', 'linear','sigmoid'], 'degree': [2,3,4,5], 'C':[0.01,0.1,0.3,0.5,0.7,1,1.5,2,5,10]}
grid = GridSearchCV(estimator=regressor_2, param_grid=param_grid, scoring='neg_root_mean_squared_error', n_jobs=1, cv=3, verbose = 1)
grid_result = grid.fit(X_train, y_train))
我得到grid_result.best_params_ {'C': 0.3, 'degree': 2, 'kernel': 'linear'} 的分数为-7.76。而{'C': 10, 'degree': 2, 'kernel': 'rbf'} 给出了 mit -8.0。
但是,当我这样做时
regressor_opt = SVR(kernel='linear', 'degree'=2, C=0.3)
regressor_opt.fit(X_train,y_train)
y_train_pred = regressor_opt.predict(X_train)
print("rmse=",np.sqrt(sum(y_train-y_train_pred)**2)/np.shape(y_train_pred)))
我得到 7.4 并且当我这样做时
regressor_2 = SVR(kernel='rbf', 'degree'=2, C=10)
regressor_2.fit(X_train,y_train)
y_train_pred = regressor_2.predict(X_train)
print("rmse=",np.sqrt(sum(y_train-y_train_pred)**2)/np.shape(y_train_pred)))
我得到 5.9。这显然比 7.4 好,但在网格搜索中,我为该参数组合得到的负 rmse 为 -8,因此比 7.4 差。
有人可以向我解释发生了什么吗?我不应该使用scoring='neg_root_mean_square_error'吗?
【问题讨论】:
标签: python scikit-learn regression grid-search gridsearchcv