使用R中的apcluster包,可以;分数“;未聚集的数据点
我是R的新手,我有一个不确定是否可行的请求。我们有许多零售点,我的老板希望使用关联传播将它们分组到集群中。我们不会基于地理位置进行聚类。一旦他找到了自己喜欢的配置,他希望能够输入其他位置,以确定它们应该属于哪些集合集群 我能想到的唯一解决方案是使用相同的选项,并使用原始点和添加的新点重新聚类,但我相信这可能会改变结果使用R中的apcluster包,可以;分数“;未聚集的数据点,r,cluster-analysis,R,Cluster Analysis,我是R的新手,我有一个不确定是否可行的请求。我们有许多零售点,我的老板希望使用关联传播将它们分组到集群中。我们不会基于地理位置进行聚类。一旦他找到了自己喜欢的配置,他希望能够输入其他位置,以确定它们应该属于哪些集合集群 我能想到的唯一解决方案是使用相同的选项,并使用原始点和添加的新点重新聚类,但我相信这可能会改变结果 我的理解是正确的,还是还有其他选择?聚类不是分类的替代品 很少有聚类算法能够有意义地集成新信息 然而,解决问题的通常方法很简单: 进行聚类 将簇标签用作类标签 训练分类器 将分类器
我的理解是正确的,还是还有其他选择?聚类不是分类的替代品 很少有聚类算法能够有意义地集成新信息 然而,解决问题的通常方法很简单:
聚类不是分类的替代品 很少有聚类算法能够有意义地集成新信息 然而,解决问题的通常方法很简单:
很抱歉回答得太晚,我只是碰巧被你的问题绊倒了 我同意Anony Mouse的回答,聚类是第一步,分类是第二步。然而,我不确定这是否是最好的选择。Elena601b显然是在谈论一项具有真正空间数据的任务,因此我的印象是,最好的方法是先进行聚类,然后通过寻找最接近的聚类示例来“分类”新的点/样本/位置。以下是合成数据的一些代码:
## if not available, run the following first:
## install.packages("apcluster")
library(apcluster)
## create four synthetic 2D clusters
cl1 <- cbind(rnorm(30, 0.3, 0.05), rnorm(30, 0.7, 0.04))
cl2 <- cbind(rnorm(30, 0.7, 0.04), rnorm(30, 0.4, .05))
cl3 <- cbind(rnorm(20, 0.50, 0.03), rnorm(20, 0.72, 0.03))
cl4 <- cbind(rnorm(25, 0.50, 0.03), rnorm(25, 0.42, 0.04))
x <- rbind(cl1, cl2, cl3, cl4)
## run apcluster() (you may replace the Euclidean distance by a different
## distance, e.g. driving distance, driving time)
apres <- apcluster(negDistMat(r=2), x, q=0)
## create new samples
xNew <- cbind(rnorm(10, 0.3, 0.05), rnorm(10, 0.7, 0.04))
## auxiliary predict() function
predict.apcluster <- function(s, exemplars, newdata)
{
simMat <- s(rbind(exemplars, newdata),
sel=(1:nrow(newdata)) + nrow(exemplars))[1:nrow(exemplars), ]
unname(apply(simMat, 2, which.max))
}
## assign new data samples to exemplars
predict.apcluster(negDistMat(r=2), x[apres@exemplars, ], xNew)
## ... the result is a vector of indices to which exemplar/cluster each
## data sample is assigned
##如果不可用,请先运行以下命令:
##安装程序包(“apcluster”)
图书馆(apcluster)
##创建四个合成二维簇
cl1很抱歉回答得太晚,我只是碰巧被你的问题绊倒了
我同意Anony Mouse的回答,聚类是第一步,分类是第二步。然而,我不确定这是否是最好的选择。Elena601b显然是在谈论一项具有真正空间数据的任务,因此我的印象是,最好的方法是先进行聚类,然后通过寻找最接近的聚类示例来“分类”新的点/样本/位置。以下是合成数据的一些代码:
## if not available, run the following first:
## install.packages("apcluster")
library(apcluster)
## create four synthetic 2D clusters
cl1 <- cbind(rnorm(30, 0.3, 0.05), rnorm(30, 0.7, 0.04))
cl2 <- cbind(rnorm(30, 0.7, 0.04), rnorm(30, 0.4, .05))
cl3 <- cbind(rnorm(20, 0.50, 0.03), rnorm(20, 0.72, 0.03))
cl4 <- cbind(rnorm(25, 0.50, 0.03), rnorm(25, 0.42, 0.04))
x <- rbind(cl1, cl2, cl3, cl4)
## run apcluster() (you may replace the Euclidean distance by a different
## distance, e.g. driving distance, driving time)
apres <- apcluster(negDistMat(r=2), x, q=0)
## create new samples
xNew <- cbind(rnorm(10, 0.3, 0.05), rnorm(10, 0.7, 0.04))
## auxiliary predict() function
predict.apcluster <- function(s, exemplars, newdata)
{
simMat <- s(rbind(exemplars, newdata),
sel=(1:nrow(newdata)) + nrow(exemplars))[1:nrow(exemplars), ]
unname(apply(simMat, 2, which.max))
}
## assign new data samples to exemplars
predict.apcluster(negDistMat(r=2), x[apres@exemplars, ], xNew)
## ... the result is a vector of indices to which exemplar/cluster each
## data sample is assigned
##如果不可用,请先运行以下命令:
##安装程序包(“apcluster”)
图书馆(apcluster)
##创建四个合成二维簇
cl1