import numpy as np
from sklearn.svm import SVR
#网格搜索法 寻找最优参数
C_Arr=[1,10,100,200,400,600,800,1000]
gamma=_Arr=[0.001,0.01,0.1]
Pre_MAPE=100
for C_out in C_Arr:
for gamma_out in gamma_Arr:
#Training
svr_rbf=SVR(kernel='rbf',C=C_out,gamma=gamma_out)
svr_rbf.fit(X_train,Y_train)
Y_pred = svr_rbf.predict(X_valid)
Y_real_pred =ldmin+Y_pred*(ldmax-ldmin)
Y_real_valid = ldmin + Y_valid*(ldmax-ldmin)
Y_diff=Y_real_pred-Y_real_valid
relat_errors =Y_diff/Y_real_valid
abs_relat_errors = np.fabs(relat_errors)
error_sum =np.sum(abs_relat_errors)
valid_num =len(abs_relat_errors)
MAPE=error_sum/valid_num
if MAPE <Pre_MAPE:
Pre_MAPE=MAPE
Opt_C=C_out
Opt_gamma=gamma_out
##测试
svr_rbf=SVR(kernel='rbf',C=Opt_C,gamma=Opt_gamma)
svr_rbf.fit(X_train,Y_train)
Y_pred =svr_rbf.predict(X_test)
Y_real_pred =ldmin+Y_pred*(ldmax-ldmin)
支持向量回归机代码示例(网格搜索最优参数)
于 2022-04-04 10:19:01 首次发布