1. A method comprising: receiving a plurality of social media messages generated by a given user; extracting a plurality of location features from the social media messages; computing, for each of the plurality of location features, a frequency of the location feature for at least one location; determining, for each of the plurality of location features, a number of people in the at least one location who have used the location feature in their social networking messages; determining, for each of the plurality of location features and based on the computed frequency and the determined number of people, if the location feature was included within social networking messages of a threshold percentage of people in the at least one location; and based on the location feature having been included within social networking messages of the threshold percentage of people, adding the feature to the subset of features; identifying at least one subset of location features from the plurality of location features that are discriminative of at least one location at a location granularity level of interest; processing each of the subset of location features with at least one classifier from an ensemble of classifiers; generating, by each of the classifiers, a location classification for each of the social media messages, each location classification comprising a location and a weight associated with that location; and selecting one of the locations from the location classifications as the location of the given user based on a combination of the weights of the location classifications.