DBSCANアルゴリズムに対してどのeps値を選択すればよいかを知るために、knn距離プロットを使用したいと思います。このページに基づく:
アイデアは、すべてのポイントからk個の最近傍への距離の平均を計算することです。kの値はユーザーによって指定され、MinPtsに対応します。次に、これらのk距離は昇順でプロットされます。目的は、最適なepsパラメータに対応する「膝」を決定することです。
numpy / sklearnでpythonを使用すると、次の点が得られます。6-knnの距離は次のとおりです。
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
nbrs = NearestNeighbors(n_neighbors=len(X)).fit(X)
distances, indices = nbrs.kneighbors(X)
# Indices
[[0 1 2 3 4 5]
[1 0 2 3 4 5]
[2 1 0 3 4 5]
[3 4 5 0 1 2]
[4 3 5 0 1 2]
[5 4 3 0 1 2]]
# Distances
[[ 0. 1. 2.23606798 2.82842712 3.60555128 5. ]
[ 0. 1. 1.41421356 3.60555128 4.47213595 5.83095189]
[ 0. 1.41421356 2.23606798 5. 5.83095189 7.21110255]
[ 0. 1. 2.23606798 2.82842712 3.60555128 5. ]
[ 0. 1. 1.41421356 3.60555128 4.47213595 5.83095189]
[ 0. 1.41421356 2.23606798 5. 5.83095189 7.21110255]]
次に、平均距離を計算しました:
distances.mean()
2.9269575028354495
問題は、pythonを使用して、y軸の距離とx軸の距離に応じた点の数でそれらと同じプロットをどのように正確に表すことができるか理解できないことです。
助けてくれてありがとう。
![ここに画像の説明を入力してください ](i.stack.imgur.com/KFDbs.png)隣接するポイントグラフにこの形状があるのはなぜですか?私を助けてください!!!
—
Dung Le