TransWikia.com

How determine optimal epsilon value in meters for DBSCAN by plotting KNN elbow

Geographic Information Systems Asked by Javier Alejandro Rendon Carril on August 6, 2021

Before doing DBSCAN I need to find optimal epsilon value, all the points are geographical coordinates, I need the epsilon value in meters before convert it to radians to apply DBSCAN using haversine metrics

from sklearn.neighbors import NearestNeighbors
neigh = NearestNeighbors(algorithm='ball_tree', metric='haversine', n_neighbors=4)
nbrs = neigh.fit(np.deg2rad(firms[['y', 'x']]))
distances, indices = nbrs.kneighbors(np.deg2rad(firms[['y', 'x']]))

AND THEN

# Plotting K-distance Graph
distances = np.sort(distances, axis=0)
distances = distances[:,1]
plt.figure(figsize=(20,10))
plt.plot(distances)
plt.title('K-distance Graph',fontsize=20)
plt.xlabel('Data Points sorted by distance',fontsize=14)
plt.ylabel('Epsilon',fontsize=14)
plt.show()

and the graph output is this, but I need the epsilon value in meters.
enter image description here

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP