1. A method of assigning a geographic location to a network block comprising: obtaining geo-location data from a plurality of network data sources; generating, for each data source, intermediate assignments associated with a network block, each intermediate assignment corresponding to geo-location assignment of the network block based on at least one of the network data sources; generating a plurality of feature vectors, each feature vector including a plurality of attributes associated with a different network data source of the plurality of network data sources, a value for a particular attribute of the plurality of attributes representing a degree to which that attribute is present or absent in a corresponding network data source of the plurality of network data sources; classifying and/or regressing each intermediate assignment using the plurality of feature vectors to generate classifications and/or regressions based on training data, the classifications being a mapping from a discrete or continuous feature space to a discrete set of labels, the training data including a set of feature vectors and corresponding desired outputs for each of the feature vectors of the set of feature vectors; and determining a geographic location of the network block based upon at least one of the intermediate assignment classifications and/or regressions.