2017-12-28 30 views
0

DBSCANのepsを見積もる次のコードがあります。コードが正常であれば、knn distance plotを取得しました。コードは次のとおりDBSCANでknn距離プロットを使用してepsを推定する方法

dataは、画素位置(行と列)のアレイである
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) 

。私はプロットを取得したが、私はepsをどのようにして決定するのか分からない。 DBSCAN紙によると、

閾値点が ソートK-distのグラフ

の最初の谷の最初の点である私は、コードでそれを実装するのですか知りません。また、ns = 4は私のminPtsですか、minPtsepsから推定する方法はありますか?

答えて

0

私が知る限り、これはヒトによって視覚的にと決定される。

オートメーションが動作していないようです。

また、OPTICSを使用することもできます。

+0

knnプロットを視覚化するコードは正しいですか? –

+0

あなたはおそらくn-1位の近所を見ているでしょうし、あなたのコードは常に最初の距離として0を返すと仮定しています。また、プロットのxの選択は私には意味がありません。 –

0

使用

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

あなたは肘プロットを取得します。カーブが急激に変化する距離はイプシロンです。

また、希望する場合は、reverse = Falseにすることもできます。

関連する問題