Python中GridSearchCV在大范围里找到的SVR模型的最优参数结果却更差

Python019

Python中GridSearchCV在大范围里找到的SVR模型的最优参数结果却更差,第1张

这是有可能的啊,因为网格搜索是遍历网格的各种值,然后计算MAE,然后比较哪组参数最优

两组参数,一组大粒度,一组小粒度,其实大粒度的参数是得不到最优的值的,除非最优参数恰好就是大粒度中的一组;一般是先利用大粒度得到大概的最优值,然后再用小粒度的值找到更精细的最优值,如此而已;

这是一段用 Python 来实现 SVM 多元回归预测的代码示例:

# 导入相关库

from sklearn import datasets

from sklearn.svm import SVR

from sklearn.model_selection import train_test_split

from sklearn.metrics import mean_squared_error

# 加载数据集

X, y = datasets.load_boston(return_X_y=True)

# 将数据集拆分为训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# 创建SVM多元回归模型

reg = SVR(C=1.0, epsilon=0.2)

# 训练模型

reg.fit(X_train, y_train)

# 预测结果

y_pred = reg.predict(X_test)

# 计算均方误差

mse = mean_squared_error(y_test, y_pred)

print("Mean Squared Error:", mse)

在这段代码中,首先导入了相关的库,包括 SVR 函数、train_test_split 函数和 mean_squared_error 函数。然后,使用 load_boston 函数加载数据集,并将数据集分为训练集和测试集。接着,使用 SVR 函数创建了一个 SVM 多元回归模型,并使用 fit 函数对模型进行训练。最后,使用 predict 函数进行预测,并使用 mean_squared_error 函数计算均方误差。

需要注意的是,这仅仅是一个示例代码,在实际应用中,可能需要根据项目的需求进行更改,例如使用不同的超参数