Я работаю над прогнозированием временного ряда с использованием 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)
Вот как данные поступают в функцию:
Первый столбец - даты, второй столбец - цена.
Почему я не понимаю этого? Три пункта:
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?
Большое спасибо за вашу помощь
С уважением