簡體   English   中英

為什么我的 MLP 神經網絡的 output 在 0 和 1 之間?

[英]Why the output of my MLP neural network are between 0 and 1?

我制作了一個神經網絡,使用歷史數據進行訓練來預測股票的未來價格。 數據集按小時間隔排列,因此目標是預測下一小時交易結束時的價格。

我使用了 2 個 (20,16) 格式的隱藏層,26 個輸入和一個 output,這應該是價格。 激活 function 是'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 之間的連續數值變量嗎?

價格是一個連續變量,所以這是一個回歸問題而不是分類問題; 在這里,您試圖將分類器應用於回歸問題,這是錯誤的。

這樣的分類器產生一個概率output,不出所料,它位於 [0, 1]。

您應該使用MLPRegressor model 而不是MLPClassifier

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM