большие ошибки в прогнозировании SVR - PullRequest
0 голосов
/ 11 октября 2019

Я новичок в SVM и использую SVR для прогнозирования моих данных. data_link

while True:
dataset = pd.read_excel(r"C:\Users\Desktop\NN_CAP\DATA2.xlsx")
if dataset.empty is True:
    print('dateset is empty, keep reading')
else:
    print('dataset is not empty')
    break

X = dataset.iloc[:, 0]    # input
Y = dataset.iloc[:, 1].ravel()      # output Delta capacitance
encoder_X = MinMaxScaler()
encoder_Y = MinMaxScaler()
X = encoder_X.fit_transform(X)
Y = encoder_Y.fit_transform(Y.reshape(-1, 1))
X = X.reshape(-1, 1)

X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2)

# define SVM by using polynominal
svr_model = SVR(kernel='poly', degree=5)
svr_model.fit(X_train, Y_train.ravel())
Y_pred = svr_model.predict(X_test)

Y_test = encoder_Y.inverse_transform(Y_test)
Y_pred = encoder_Y.inverse_transform(Y_test)


from sklearn import metrics
print(metrics.r2_score(Y_test, Y_pred))
plt.scatter(X_test, Y_test, color='red')
plt.scatter(X_test, Y_pred, color='blue')
plt.show()

, но результаты прогноза плохие. как цифра prediction results

Я также пытался использовать gridsearchCV, чтобы найти лучшие параметры. но результаты были не лучше.

define gridsearchCV
param_grid = {'kernel': ['rbf', 'poly', 'sigmoid'],   #
               'C': np.logspace(0.01, 100, 5),
               'gamma': ['auto', 'scale'],   # 'gamma': np.logspace(1e-3, 1, 5)
               'epsilon': [0.1, 0.2, 0.5, 0.3],
               } # 'degree': [3, 5, 7, 8, 9, 10]
svr_search = GridSearchCV(SVR(), param_grid, verbose=1000)
svr_search.fit(X_train, Y_train.ravel())
best_params = svr_search.best_params_
print(svr_search.best_params_)
svr_model = SVR(kernel='rbf', C=best_params['C'], epsilon=best_params['epsilon'], gamma=best_params['gamma'])

Кто-нибудь может дать какие-нибудь предложения? любые идеи искренне ценятся.

...