【发布时间】:2021-11-05 20:52:53
【问题描述】:
我正在尝试对数据 https://www.kaggle.com/arjunbhasin2013/ccdata 执行 DBSCAN 聚类。我已经清理了数据并应用了算法。
data1 <- read.csv('C:\\Users\\write\\Documents\\R\\data\\Project\\Clustering\\CC GENERAL.csv')
head(data1)
data1 <- data1[,2:18]
dim(data1)
colnames(data1)
head(data1,2)
#to check if data has empty col or rows
library(purrr)
is_empty(data1)
#to check if data has duplicates
library(dplyr)
any(duplicated(data1))
#to check if data has NA values
any(is.na(data1))
data1 <- na.omit(data1)
any(is.na(data1))
dim(data1)
算法应用如下。
#DBSCAN
data1 <- scale(data1)
library(fpc)
library(dbscan)
set.seed(500)
#to find optimal eps
kNNdistplot(data1, k = 34)
abline(h = 4, lty = 3)
图中显示了'膝盖'来识别'eps'值。由于聚类需要考虑 17 个属性,所以我取了 k=17*2 =34。
db <- dbscan(data1,eps = 4,minPts = 34)
db
我得到的结果是“聚类包含 1 个簇和 147 个噪声点。”
无论我为 eps 和 minPts 更改什么值,结果都是一样的。
谁能告诉我哪里出错了?
提前致谢。
【问题讨论】:
-
您应该从扩展数据开始。
-
@det 我已经缩放并应用了算法。它仍然是一个带有噪声点的单个集群。