I have a dataset of longitudes and latitudes for stores in New York City. The data consists of only three columns - longitude, latitude, and store ID.
I want to use python to cluster these stores by using longitude and latitude. Of course ID is not clusterable so I will remove it from the data before clustering.
The type of clusters I want… I want clusters that are density based. If there’s a large number of stores in an area, the algorithm should recognize that. I also want the algorithm to be able to recognize outliers. Third, I don’t want the clusters to be drastically different in size. They don’t need to be the exact same of course, because density will play a part in that. But at the same time, I don’t want a cluster with 100 stores when the average number of stores in a cluster should be around 20. Lastly. I need the algorithm to recognize that this is geospatial data. I need it to cluster accordingly.
What is the best clustering algorithm to use for this geospatial data?
I know the obvious answer seems like DBSCAN. But I promise I have tried it out and have done a lot of research on tuning those parameters. However it doesn’t meet the criteria I’m looking for.
What other algorithms will be worth a try?