2013-07-02 2 views
0

я в настоящее время пытаюсь найти кластеры в наборе данных, который выглядит следующим образом:Кластеризация данных графа

  Dienstag 19 Mittwoch 20 Donnerstag 21 Freitag 22 Montag 25 Dienstag 26 Donnerstag 28 
[1,]   0   0    0   0   0   0   NA 
[2,]   0   0    0   0   0   0   NA 
[3,]   0   0    0   0   0   0   NA 
[4,]   0   0    0   0   1   0   NA 
[5,]   1   0    1   1   1   1   NA 
[6,]   0   0    0   0   0   0   NA 
[7,]   4   0    1   0   2   1   NA 
[8,]   0   1    2   1   0   2   NA 
[9,]   0   0    1   0   0   0   NA 
[10,]   1   0    0   0   0   1    0 
[11,]   2   0    1   0   0   5    0 
[12,]   1   0    0   0   0   1    1 
[13,]   0   1    0   0   0   0    0 
[14,]   0   0    1   0   4   1    0 

Это соответствует при подсчете раз пользователь использовал приложение данный день и час.

Я хочу найти шаблон/кластеры, которые связывают использование с часами, но я не знаю, как управлять им. Было бы очень полезно, если бы вы могли дать мне несколько советов о методах.

+0

Это вопрос статистики, а не вопрос о кодировании. Но попробуйте карту тепла. –

+0

Ты будешь осторожен, я попробую просить в статистическом разделе. Спасибо, что ваш подход - хорошее начало – Tarigarma

ответ

2

Существуют также статистические средства при кластеризации, но вот визуальный подход. Я был ленивым и использовал библиотеки, с которыми я знаком, для достижения этой цели, но, скорее всего, он будет выполнен более эффективно с некоторыми базовыми инструментами.

## dat <- read.table(text="   Dienstag.19 Mittwoch.20 Donnerstag.21 Freitag.22 Montag.25 Dienstag.26 Donnerstag.28 
## [1,]   0   0    0   0   0   0   NA 
## [2,]   0   0    0   0   0   0   NA 
## [3,]   0   0    0   0   0   0   NA 
## [4,]   0   0    0   0   1   0   NA 
## [5,]   1   0    1   1   1   1   NA 
## [6,]   0   0    0   0   0   0   NA 
## [7,]   4   0    1   0   2   1   NA 
## [8,]   0   1    2   1   0   2   NA 
## [9,]   0   0    1   0   0   0   NA 
## [10,]   1   0    0   0   0   1    0 
## [11,]   2   0    1   0   0   5    0 
## [12,]   1   0    0   0   0   1    1 
## [13,]   0   1    0   0   0   0    0 
## [14,]   0   0    1   0   4   1    0", header=TRUE) 


dat$hour <- factor(1:nrow(dat)) 
library(reshape2); library(qdap); library(ggplot2); library(plyr) 
dat2 <- melt(dat) 
dat2[, 2] <- beg2char(dat2[, 2], ".") 
dat2 <- ddply(dat2, .(variable), transform, 
    rescale = scale(value)) 

ggsave("heat.png") 
ggplot(dat3, aes(variable, hour)) + geom_tile(aes(fill=rescale)) + 
    scale_fill_gradient(low = "white", high = "red") 

enter image description here

0

Большинство алгоритмов кластеризации будем считать непрерывные данные. Конечно, вы можете «отличать» целые числа до двойных значений, результаты больше не будут столь значимыми, как для истинных непрерывных значений.

Мне нравится визуальный подход Тайлер. Если есть значимая картина, ваш мозг визуальной коры, вероятно, лучший инструмент для ее обнаружения.

Смежные вопросы