2017-12-28 2 views
0

Ich habe den folgenden Code, um die eps für DBSCAN zu schätzen. Wenn der Code in Ordnung ist, habe ich die knn distance plot erhalten. Der Code ist:So schätzen Sie die eps mit Hilfe des Abstands-Plots in DBSCAN

ns = 4 
nbrs = NearestNeighbors(n_neighbors=ns).fit(data) 
distances, indices = nbrs.kneighbors(data) 
distanceDec = sorted(distances[:,ns-1], reverse=True) 
plt.plot(indices[:,0], distanceDec) 

data Wo ist die Anordnung von Pixelstellen (Zeilen und Spalten). Ich habe eine Handlung erhalten, aber ich verstehe nicht, wie ich die eps ermitteln kann. Nach DBSCAN Papier,

der Schwellenpunkt ist der erste Punkt im ersten Tal der sortierte k-dist Graph

Ich weiß nicht, wie ich es im Code implementieren. Darüber hinaus ist ns = 4 ist meine minPts oder gibt es eine Möglichkeit, minPts von eps zu schätzen?

Antwort

0

Soweit ich das beurteilen kann, ist dies visuell von einem Menschen zu bestimmen.

Automatisierung scheint nicht zu funktionieren.

Oder Sie können OPTICS verwenden.

+0

Ist der Code zur Visualisierung des KNN-Plots korrekt? –

+0

Sie schauen sich wahrscheinlich die n-1 Nächste wiehern an, oder, wie ich nehme, wird Ihr Code immer 0 als erste Entfernung zurückgeben. Auch Ihre Wahl von x für die Handlung macht keinen Sinn für mich. –

0

Verwenden

plt.plot(list(range(1,noOfPointsYouHave+1)), distanceDec) 

Sie erhalten einen Ellbogen Grundstück erhalten. Die Entfernung, in der Sie eine scharfe Veränderung der Kurve haben, ist Ihr Epsilon.

Sie können auch umgekehrt = False, wenn Sie möchten.

Verwandte Themen