I’ve started ML projects before, but, well, I’m starting again. As this is a learning exercise (which actually applies to this whole ML ‘thing’ I’m doing) I’ll pick a context that has some topical interest for me with no expectation of actually discovering anything useful. So, it’s the predicting the price of BTC.
Which brings me to the first issue. The ideal time series for ML is stationary, i.e. it has a constant mean and variance. Time series for financial assets are far from stationary, and I have seen recommendations to use the return rather than the actual price, i.e. the fractional change from period to period. I think I’ll go with daily data, so the daily return is what I’m looking at. Why daily? Why not? I have to pick something and that’s it. Maybe as a variation I can use a different timeframe later and see if I get a better result.
So how much data? As this is an exercise it doesn’t really matter, although ML is said to work better with more data, although I acquired a book recently (but haven’t read it yet) that challenges this idea. Can’t imagine how that could be correct but I guess I’ll find out when I get around to reading it. Anyway, I can download 1000 data points from Binance in a single request from the REST API, so that’s easy.
What else do I need? To start with some baseline. Jason Brownlee suggests a persistence model is appropriate for time series data, so I might start with predicting that tomorrow’s return will be the same as today’s. And since I’m predicting a continuous value it will be a regression problem and I can use the Mean Square Error as an appropriate measure of loss. I’ll probably get around to actually doing this tomorrow. Just thinking about it for the moment.