I’ve got an idea for predicting Magic card prices over time. For those who don’t follow, Magic the Gathering is so popular and has such longevity that its prices form a market similar to a commodities exchange. The prices are tracked and fluctuate, and there are speculators involved as with any market. Prices strongly relate to the “stats” on each card in relation to the rest of the cards currently “in print”.

I have a large amount of historical market price data and card data available.

My idea is to take the stats for each card (let’s say 50-element vector), and predict what will happen to a particular card’s value when a new set of cards enters the market, and/or a set leaves the “blessed” superset of allowed cards (old cards leave tournament play after a few years, thus often drop in value)

Here’s the thing:

I’m still struggling to understand how one sets up a learning application where the bulk of the relevant knowledge is contained in “externalities”, or the entering/exiting sets of cards, that are not (to my mind) actual training items themselves.

One possibility would be to forget deep learning and just use something like linear regression. But I am not convinced that would A) work, or B) be interesting. I also thought about possibly just encoding all features for the card sets entering/leaving as “constants” and tacking to the input vector. But then I’d have, lets say 50 parameters for the actual card being trained, and 50x300 “constants” for the 300 cards entering print. And this still doesn’t take into account the whole world of cards currently in print.

My final idea was to create a matrix of the “world” of cards, say 3000 x 50, and multiply this by the card being trained to form the input. Is this strategy bogus?

Is there a formula for dealing with stuff like this, where the “world” has to be somehow encoded? If I need to review a particular lesson, please let me know.

Thanks for any ideas. I’m still pretty green at this stuff.