Problem: I would like to improve accuracy of stock price prediction image classification model using candlestick charts.
Base model: VGG16 and EfficientNet.
Base model input: Two models independently take labeled candlestick chart images as input. Candlestick chart images are labeled 0 (stock price of candle will fall after 5 days) and 1 (stock price will rise after 5 days).
Base model output(which is meta learner input): 0 (price will fall) and 1 (price will rise) with probability. dataset period is 2019 to 2020. Base model shows accuracy around 0.6, f1 score around 0.5.
ex:
| Ticker | Predicting date | Predicted | probability |
|---|---|---|---|
| AAPL | 2019-01-02 | 0 | 0.67 |
| AAPL | 2019-01-03 | 1 | 0.82 |
Currently, I'm using a meta learner model as logistic regression. I combined the predicted value and probaility of two base learner models into 2d array(below image), and trained the logistic regression model.
x_train : predicted value of vgg and efficientNet: 0 and 1 with probability. dataset period: 2019~2020
x_test:predicted value of vgg and efficientNet: 0 and 1 with probability. dataset period: 2021 (testset)
y_train: value that meta learner model should predict: price will fall(0) or rise(1). dataset period: 2019~2020
y_test:value that meta learner model should predict: price will fall(0) or rise(1). dataset period: 2021 (validset)
model = Sequential()
model.add(Dense(2, input_dim = 2, activation='sigmoid'))
sgd = optimizers.SGD(learning_rate = input_learningrate)
model.compile(loss='mse',optimizer=sgd, metrics=['accuracy'])
batchsize:16 learning rate: 0.001

