A self-adaptive, data-driven method to predict the cycling life of lithium-ion batteries