使用R中的apcluster包,可以;分数“;未聚集的数据点

使用R中的apcluster包,可以;分数“;未聚集的数据点,r,cluster-analysis,R,Cluster Analysis,我是R的新手,我有一个不确定是否可行的请求。我们有许多零售点,我的老板希望使用关联传播将它们分组到集群中。我们不会基于地理位置进行聚类。一旦他找到了自己喜欢的配置,他希望能够输入其他位置,以确定它们应该属于哪些集合集群 我能想到的唯一解决方案是使用相同的选项,并使用原始点和添加的新点重新聚类,但我相信这可能会改变结果 我的理解是正确的,还是还有其他选择?聚类不是分类的替代品 很少有聚类算法能够有意义地集成新信息 然而,解决问题的通常方法很简单: 进行聚类 将簇标签用作类标签 训练分类器 将分类器

我是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