我有由那我想用一些非监督分类算法分类文本标记(也就是说,不同的身份证号码和一些其他类型)的数据集。
鉴于某些类型的功能,我从文本中提取(#字符,数字#,阿尔法#,一些正则表达式等)的算法,比如kmeans
(只是作为一个例子,我不是必然的kmeans)正常工作,但我要添加更多的细节,如莱文斯坦距离,我可以用hclust
。
不过,我不太找到如何将二者结合起来,不同的数据类型(链接到两个观察,如距离度量的数据的起点,并链接到只有一个观测数据,如每个令牌具有的字符数)。
我错过了一些简单的一部分,它甚至有可能还是我只是找错了算法?
下面,你会发现一个小数据集,到目前为止,我已经采取了不同的方法的例子。
MWE数据
# create some data
set.seed(123)
x <- sapply(1:20, function(i) {
paste(c(
sample(LETTERS, sample(1:10, 1), replace = T),
sample(1:9, sample(1:10, 1), replace = T),
sample(LETTERS[1:10], 2)
), collapse = "")
})
head(x)
#> [1] "UKW1595595761IC" "I9769675632JI" "UAMTFIG44DB" "GM814HB"
#> [5] "FDTXJR4CH" "VVULT7152464BC"
# apply the different algorithms
# 1. K-means
df <- data.frame(x)
df$nchars <- nchar(x)
df$n_nums <- nchar(gsub("[^[:digit:]]", "", x))
# etc.
kclust <- kmeans(df[, 2:3], centers = 2)
pairs(df, col=c(2:3)[kclust$cluster])
# 2. Levensthein distance and hclust
distance <- adist(x)
rownames(distance) <- x
hc <- hclust(as.dist(distance))
plot(hc)
# 3. Combination of adist(x) and the df-variables
# ???