IB has an API that supports tick-by-tick historical data and real-time quotes. You might be able to sign up for a demo account and pull from their historical database. You'll have to roll your own backtester though when you build your own historical DB.
But to save you the time, applying regular ML to historical tick-data will only make you into a smarter market-maker. In usual trending or sideways equities, you'll make small amounts of money followed by a catastrophic loss due to catalyst events, earnings etc that wipes out months of money.
Perhaps the most important part of algo-design is not the ML, but tweaking draw-down and risk management.