Я новичок в R и анализе данных. Я пытаюсь создать простую пользовательскую систему рекомендаций для веб-сайта. Итак, в качестве входной информации у меня есть user/session-id,item-id,item-price
, на которые нажимали пользователи.
c165c2ee-81cf-48cf-ba3f-83b70204c00c 161785 124.0
a886fdd5-7cee-4152-b1b7-77a2702687b0 643339 42.0
5e5fd670-b104-445b-a36d-b3798cd43279 131332 38.0
888d736f-99bc-49ca-969d-057e7d4bb8d1 1032763 39.0
Я хотел бы применить кластерный анализ к этим данным.
Если я попытаюсь применить кластеризацию k-средних к своим данным:
> q <- kmeans(dat, centers=25)
Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)
In addition: Warning message:
In kmeans(dat, centers = 25) : NAs introduced by coercion
Если я попытаюсь применить иерархическую кластеризацию к данным:
> m <- as.matrix(dat)
> d <- dist(m) # find distance matrix
Warning message:
In dist(m) : NAs introduced by coercion
Кажется, что «NA, введенные принуждением», происходят, поскольку первый столбец не является числом. Итак, я попытался запустить код против dat[-1]
, но результат тот же.
Что я упускаю или делаю неправильно?
Заранее большое спасибо.
=== ОБНОВЛЕНИЕ №1 ===
Вывод по ул и фактору:
> str(dat)
'data.frame': 14634 obs. of 3 variables:
$ V3 : Factor w/ 10062 levels "000880bf-6cb7-4c4a-9a9d-1c0a975b52ba",..: 7548 6585 3670 5336 9181 6429 62 410 7386 9409 ...
$ V8 : Factor w/ 5561 levels "1000120","1000910",..: 835 3996 443 65 1289 2084 582 695 3666 4787 ...
$ V12: Factor w/ 395 levels "100.0","101.0",..: 25 278 249 256 352 249 1 88 361 1 ...
> dat[,1] = factor(dat[,1])
> str(dat)
'data.frame': 14634 obs. of 3 variables:
$ V3 : Factor w/ 10062 levels "000880bf-6cb7-4c4a-9a9d-1c0a975b52ba",..: 7548 6585 3670 5336 9181 6429 62 410 7386 9409 ...
$ V8 : Factor w/ 5561 levels "1000120","1000910",..: 835 3996 443 65 1289 2084 582 695 3666 4787 ...
$ V12: Factor w/ 395 levels "100.0","101.0",..: 25 278 249 256 352 249 1 88 361 1 ...
> dd <- dist(dat)
Warning message:
In dist(dat) : NAs introduced by coercion
> hc <- hclust(dd) # apply hirarchical clustering
Error in hclust(dd) : NA/NaN/Inf in foreign function call (arg 11)
=== ОБНОВЛЕНИЕ #2 ===
Я не хотел бы удалять первый столбец, так как может быть несколько кликов для одного и того же пользователя, что я считаю важным для анализа.
str(dat)
, чтобы другие столбцы были числами? Обаdist()
иkmeans()
возвращают ошибку о ваших числовых значениях. - person ilir   schedule 21.04.2014