Predicting Protein Functions using Machine Learning