Я создал нейронную сеть для прогнозирования будущих цен на акции, используя исторические данные для обучения. Набор данных организован с почасовыми интервалами, поэтому цель состоит в том, чтобы спрогнозировать цену в конце следующего часа торговли.
Я использовал 2 скрытых слоя формата (20,16), 26 входов и один выход, который должен быть ценой. Функция активации - relu, решатель - adam.
Когда обучение завершено, и я пытаюсь его протестировать, все выходы - это значения от 0 до 1, которые я не понимаю.
Вот мой код:
# Defining the target column and predictors
target_column = ['close']
predictors = list(set(list(df.columns))-set(target_column)
# Standardizing the DataFrame
df[predictors] = df[predictors]/df[predictors].max()
df.describe().transpose()
# Creating the sets and splitting data
X = df[predictors].values
y = df[target_column].values
y = y.astype('int')
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=1)
df.reset_index()
#Fitting the training data
mlp = MLPClassifier(hidden_layer_sizes=(20,16), activation='relu', solver='adam', max_iter=1000)
mlp.fit(X_train, y_train.ravel())
#Predicting training and test data
predict_train = mlp.predict(X_train)
predict_test = mlp.predict(X_test)
После того, как я выполню код, я также получаю это предупреждение:
UndefinedMetricWarning: Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples. `Use `zero_division` parameter to control this behavior.
Разве прогноз не должен быть, по крайней мере, непрерывной числовой переменной, не ограниченной между 1 и 0?