Среднее значение кластерного центра DBSCAN в R? - PullRequest
4 голосов
/ 07 ноября 2011

Используя dbscan в пакете fpc Я могу получить вывод:

dbscan Pts=322 MinPts=20 eps=0.005
        0   1
seed    0 233
border 87   2
total  87 235

, но мне нужно найти центр кластера (среднее кластера с большинством семян).Может кто-нибудь показать мне, как это сделать?

Ответы [ 2 ]

6 голосов
/ 25 февраля 2012

Необходимо понимать, что, поскольку DBSCAN ищет кластеров произвольной формы , среднее значение может находиться далеко за пределами кластера.Поэтому смотреть на средства кластеров DBSCAN не очень разумно.

4 голосов
/ 07 ноября 2011

Просто проиндексируйте исходные данные, используя выбранный вами идентификатор кластера.Затем вы можете легко выполнить любую дополнительную обработку для подмножества.Вот пример:

library(fpc)

n = 100
set.seed(12345)
data = matrix(rnorm(n*3), nrow=n)
data.ds = dbscan(data, 0.5)
> data.ds
dbscan Pts=100 MinPts=5 eps=0.5
        0 1 2 3
seed    0 1 3 1
border 83 4 4 4
total  83 5 7 5
> colMeans(data[data.ds$cluster==0, ])
[1]  0.28521404 -0.02804152 -0.06836167
...