Cross validation is one initially you should look read below link en.wikipedia.org/wiki/Cross-validation_%28statist… http://en.wikipedia.org/wiki/Model_selection few other things you should consider
Similarly i can write hundreds of reason. I would suggest go to Kaggle and looks at all kind of classification and check what are algorithms people are applying. Its very hard to write each and every case here. this is the skill every data scientist need to learn by their-self.