Как кодировать функцию Radial Basis Neural Net в Python для прогнозирования временных рядов? - PullRequest
0 голосов
/ 28 марта 2020

Я работаю над прогнозированием временного ряда с использованием RBF Neural Net. Я нашел этот код в github, который вы можете найти здесь. https://github.com/splgeo/Stock-Predictions/blob/master/Stock%20Prediction%20ML/stock_prediction.py

Теория в статье здесь:

https://github.com/splgeo/Stock-Predictions/blob/master/AI%20Stock%20Market%20Prediction.pdf

У меня проблемы с пониманием этой части кода, показанного ниже:

def predict_price(dates, prices, x):
    dates = np.reshape(dates,(len(dates), 1)) 
    svr_rbf = SVR(kernel= 'rbf', C= 1e3, gamma= 0.1) 
    svr_rbf.fit(dates, prices) 
    plt.plot(dates, prices, color= 'black', label= 'Data')  
    plt.plot(dates, svr_rbf.predict(dates), color= 'red', label= 'RBF model') 
    plt.xlabel('Date')
    plt.ylabel('Price')
    plt.title('Support Vector Regression')
    plt.legend()
    plt.show()
    return svr_rbf.predict(x)[0]


predicted_price = predict_price(dates, prices, 30) 
print(predicted_price)

Вот как данные поступают в функцию:

enter image description here

Первый столбец - даты, второй столбец - цена.

Почему я не понимаю этого? Три пункта:

1- Вход X (который является запасом) в коде не структурирован в матричном формате, что означает:

[X (t-1), ..., Х (т-н + 1); Х (т-2), ..., X (т-п + 2); X (т-3), .... , X (t-n + 3)]; это один и тот же временной ряд, сдвинутый на одну задержку за раз. Здесь я предполагаю, что мы используем X с тремя задержками для оценки выходных данных X (t).

2- В коде я не вижу, как число скрытых узлов определяется с помощью k-средних. Как мы определили количество скрытых узлов и центроидов?

3- Функция ниже использовалась для оценки RBF Neural net.

svr_rbf = SVR(kernel= ‘rbf’, C= 1e3, gamma= 0.1).
svr_rbf.fit(dates, prices)

Почему? Разве это не SVM функция? Знаете ли вы, есть ли какая-либо другая функция, которая может оценить RBF NN?

Большое спасибо за вашу помощь

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...