Intelligent Prognostics for Engineering Systems with Machine Learning Techniques