我对OPTICS算法感到困惑。如果一组点是密度连接的,则可以将它们视为一个群集。如果存在物体o,则点p密度连接到点q,使得p和q都可以从epsilon和MinPts密度到达。
在我的情况下(ε= 5,minPts = 2,L1-norm = Manhattan距离),H是核心点,因为它的ε距离超过2个点。 H从G和G到密度密度可达,因为它们共享E。对于H和S,也是如此,因为它们共享T。毕竟,E,T,S和G都在H的ε范围内。意见E,G,H,S,T在同一集群中。
如果我用sklearn.optics
运行它,则会得到图片的结果,其中H是一个噪声点。
为什么E,G,H,S和T不在同一群集中?
from sklearn.cluster import OPTICS
import numpy as np
data = np.array([[3,2], [2,5], [2,7], [1,8], [2,9], [2,8], [3,9], [7,9], [6,2], [7,1], [7,3], [7,2], [8,3], [9,2], [8,2], [8,1], [10,10], [10,11], [11,10], [11,11] ])
clustering = OPTICS(min_samples=2, max_eps=5.0, metric='manhattan').fit(data)
print('labels:', clustering.labels_)
这给了我:
labels: [ 0 1 1 1 1 1 1 -1 0 0 0 0 0 0 0 0 2 2 2 2]
A B C D E F G H I J K L M N O P Q R S T