Как рассчитать root среднеквадратичную ошибку по регрессии гауссовского процесса? - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь рассчитать среднеквадратическое отклонение выборки данных с использованием гауссовой регрессии процесса. Я использую GPy для этого вычисления. В настоящее время у меня есть следующий соответствующий код:

def RMSE(model, grid, ygrid):
    mu, V = model.predict(grid)
    Sqerr = np.power(ygrid - mu,2)
    MSE = np.sum(Sqerr)
    rmse = np.sqrt(MSE/ygrid.size)
    print ('RMSE = ' +str(rmse))
    print ('Log likelihood is ' + str(model.log_likelihood()))
    return rmse

#reshaping values to fit gaussian process
gp_y = (y).values.reshape(x.shape[0], 1)
gp_x = (np.array(x)).reshape(x.shape[0], 1)

#choosing right kernel:currently comparing Matern32, Matern52 & RBF
#plotting graph and calculating error
kern = GPy.kern.Matern32(1)
model = GPy.models.GPRegression(gp_x, gp_y, kern)
model.optimize()
model.plot()
plt.xlabel('Moneyness', fontsize = 15)
plt.ylabel('Bid/Strike', fontsize = 15)

RMSE(model,gp_x, gp_y)

Я не уверен, что это дает мне правильные значения, поскольку RMSE в основном равно 0. Я не уверен, есть ли в GPy функция для вычисления этого.

...