Я пытаюсь создать матрицу расстояний Jaccard и выполнять на ней K-средства, чтобы выдавать идентификаторы кластера и идентификаторы элементов в кластере. Вход для него - twet tweets. Ниже приведен код, и я не мог понять, как использовать начальные семена из файла для kmeans.Кластеризация Kmeans с использованием матрицы расстояния jaccard
install.packages("rjson" ,dependencies=TRUE)
library("rjson")
install.packages("jsonlite" ,dependencies=TRUE)
library("jsonlite")
install.packages("stringdist" ,dependencies=TRUE)
library("stringdist")
data <- fromJSON(sprintf("[%s]", paste(readLines(file("C:\\Users\\Yuzuru Onathoshi\\Desktop\\Assignment5_pxv142730_sxl162530\\Part2\\Input\\Tweets.json")),collapse=",")))
t.feature <- data
t.feature$geo<-NULL
Jmatrix<-stringdistmatrix(t.feature$text,t.feature$text,method = "jaccard")
colnames(Jmatrix) <- t.feature$from_user_id
rownames(Jmatrix) <- t.feature$from_user_id
fit <- kmeans(Jmatrix, 10)
Вы можете реализовать свои собственные кмэны с дистанцией jaccard, это не должно быть сложно. –
@sandipan неверный. k-средства не могут сходиться для других расстояний, если только вы не замените среднее на соответствующую функцию. –
@ Anony-Mousse на самом деле? есть ли для этого теоретический результат? какова математическая интуиция за этим? также, если не означает, что мы можем использовать k-медоидную функцию. Несмотря на то, что с той же оптимизационной функцией, что и kmeans (только с изменением расстояния), интуитивно я не вижу, почему она не будет сходиться. - sandipan 5 часов назад –