Нов съм в 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
„НА, въведени по принуда“ изглежда се случват, тъй като първата колона не е число. И така, опитах се да стартирам кода срещу dat[-1]
, но резултатът е същият.
Какво пропускам или правя погрешно?
Благодаря много предварително.
=== АКТУАЛИЗАЦИЯ #1 ===
Изход на str и фактор:
> 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