【发布时间】:2022-01-06 19:52:12
【问题描述】:
我在控制两个类标签(1 和 2)的模式时遇到问题,导致使用 k-medoids 进行分类任务。我想在两个区域 (ID) g2 和 g3 应用 cluster::clara,并为这两个区域应用相同的分类标签,在我的示例中:
# Packages
library(cluster)
library(ggplot2)
my_ds <-read.csv("https://raw.githubusercontent.com/Leprechault/trash/main/class_areas_ds.csv")
str(my_ds)
# 'data.frame': 194789 obs. of 5 variables:
# $ x : num 426060 426060 426060 426060 426060 ...
# $ y : num 8217410 8217410 8217410 8217410 8217410 ...
# $ ID : chr "g2" "g2" "g2" "g2" ...
# $ R : num 0.455 0.427 0.373 0.463 0.529 ...
# $ HUE: num -0.00397 -0.00384 -0.0028 -0.00369 -0.00352 ..
# Classification based in `R` and `HUE` variables
res<-NULL
areas<-unique(my_ds$ID)
for(i in 1:length(areas)){
my_ds_split<-my_ds[my_ds$ID==areas[i],]
k.medoids.res<-cluster::clara(my_ds_split[,4:ncol(my_ds_split)], 2, metric ="manhattan")
my_ds_split.F<-cbind(my_ds_split, class = k.medoids.res$clustering)
my_ds_split.F$class<-ifelse(my_ds_split.F$class==1,0,1)
res<-rbind(res,cbind(my_ds_split.F))
}
res<-as.data.frame(res)
# Plot the results
plots <- list()
for (g in 1:length(areas)) {
my_ds_split_class<-res[res$ID==areas[g],]
plots[[g]] <- ggplot() +
geom_point(data=my_ds_split_class,
aes(x=x, y=y, color=class)) +
theme_void()
}
plots[[1]]
plots[[2]]
在图中,区域g2 的分类与g3 的分类相反,并且仅将g2 和g3 数据集放在一起进行分类不是一种选择,因为我是我的原始人数据集我有 9 万个区域,我的 RAM 内存只有 64GB。
请帮助我找到在多个区域之间创建相同分类协议的方法?
【问题讨论】:
标签: r cluster-analysis k-means unsupervised-learning