Data-Driven Based Fault Prognosis for Systems – a Review