I'm working on geographic data where I need to predict the average income per geo key/zip code. The data I have consisted of more than 30 million unique geo keys in Zip+4 format. As per my understanding, this many geokeys won't be a good predictor so, I converted them into geo points (LAT/LNG). So the data looks like this,

LAT LNG Avg_inc
39.829506 105.013535 47374.5

I tried Linear regression, Random Forest, and SGD Regressor on this data but the results are not looking good. Also, I build a BigQuery model for the same but the I am not getting good results. I am so confused now, I want to know how to use these geographic data (LAT/LNG) for any regression/classification problem. Please suggest.

  • 1
    $\begingroup$ I would bet on Random Forest. Try LAT + LNG and LAT - LNG as extra features $\endgroup$ Jun 10 at 18:21
  • $\begingroup$ Thanks, @IvanReshetnikov. It actually worked for me! I also added another feature, Household Count for each pair of lat and long. $\endgroup$ Jun 14 at 14:20

1 Answer 1


If you want to predict at locations where you don't have data, and you assume that there is a continuous surface of your variable of interest (ie it is defined at all locations) then you can use kriging, but you'll need to be careful with 30M points.

Otherwise inverse distance weighting (IDW) will do it but without uncertainty prediction since its not model-based, although you can use IDW with a variable distance coefficient and optimise by cross-validation.

Or regress the value at X on the K-nearest neighbours.

There's a whole world of spatial statistical modelling out there. Questions are probably best asked on the stats.stackexchange.com site though, since what you have a is a statistical problem and not a data science one.

  • $\begingroup$ Thanks, Spacedman, I appreciate your contribution here. I'm gonna try these out. $\endgroup$ Jun 14 at 14:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.