2017-12-07 6 views
1

이진화 진행에 적용되는 데이터 집합이 있고 arules 패키지를 사용하여 트랜잭션으로 데이터 집합을 강제 변환하려고합니다. CLUST_K 데이터 세트로부터arules에 대한 이산화 데이터 준비

CLUST_K <- structure(list(LONGITUDE = c(118.5, 118.5, 118.5, 118.5, 118.5, 
        118.5), LATITUDE = c(-11.5, -11.5, -11.5, -11.5, -11.5, -11.5 
        ), DATE_START = structure(c(1419897600, 1419984000, 1420070400, 
        1420156800, 1420243200, 1420329600), class = c("POSIXct", "POSIXt" 
        )), DATE_END = structure(c(1420502400, 1420588800, 1420675200, 
        1420761600, 1420848000, 1420934400), class = c("POSIXct", "POSIXt" 
        )), FLAG = c(2, 1, 2, 2, 2, 2), SURFSKINTEMP = c(13L, 1L, 16L, 
        16L, 7L, 13L), SURFAIRTEMP = c(6L, 6L, 6L, 6L, 6L, 6L), TOTH2OVAP = c(5L, 
        17L, 17L, 17L, 17L, 17L), TOTO3 = c(16L, 16L, 16L, 10L, 7L, 7L 
        ), TOTCO = c(12L, 12L, 8L, 4L, 12L, 12L), TOTCH4 = c(13L, 14L, 
        6L, 6L, 11L, 7L), OLR_ARIS = c(10L, 4L, 4L, 7L, 5L, 10L), CLROLR_ARIS = c(10L, 
        4L, 4L, 7L, 5L, 10L), OLR_NOAA = c(10L, 10L, 10L, 10L, 7L, 9L 
        ), MODIS_LST = c(1L, 1L, 1L, 1L, 1L, 1L)), .Names = c("LONGITUDE", 
        "LATITUDE", "DATE_START", "DATE_END", "FLAG", "SURFSKINTEMP", 
        "SURFAIRTEMP", "TOTH2OVAP", "TOTO3", "TOTCO", "TOTCH4", "OLR_ARIS", 
        "CLROLR_ARIS", "OLR_NOAA", "MODIS_LST"), row.names = c(NA, 6L 
        ), class = "data.frame")  

경우, 데이터 세트의 다섯 번째 열에

LONGITUDE LATITUDE DATE_START DATE_END FLAG SURFSKINTEMP SURFAIRTEMP TOTH2OVAP TOTO3 TOTCO TOTCH4 OLR_ARIS CLROLR_ARIS OLR_NOAA MODIS_LST 
1  118.5 -11.5 2014-12-30 2015-01-06 2   13   6   5 16 12  13  10   10  10   1 
2  118.5 -11.5 2014-12-31 2015-01-07 1   1   6  17 16 12  14  4   4  10   1 
3  118.5 -11.5 2015-01-01 2015-01-08 2   16   6  17 16  8  6  4   4  10   1 
4  118.5 -11.5 2015-01-02 2015-01-09 2   16   6  17 10  4  6  7   7  10   1 
5  118.5 -11.5 2015-01-03 2015-01-10 2   7   6  17  7 12  11  5   5  7   1 
6  118.5 -11.5 2015-01-04 2015-01-11 2   13   6  17  7 12  7  10   10  9   1 

첫번째 열은 거래 정보 인 것을 알 수 있고, 칼럼 (15)에 열 (6)는 트랜잭션이 있으며, 이는 (discretization proceeding)에 적용된다. 내가 거래

CLUST_K_R <- CLUST_K[,6:15] 
CLUST_K_R_T <- as(CLUST_K_R,"transactions") 
Error in asMethod(object) : 
    column(s) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 not logical or a factor. Discretize the columns first. 

하지만 설정 데이터를 강요하려고 할 때이 데이터 세트가 이미

내가 분할을 사용

을 진행 이산화 적용했다

, 또한하지 못했습니다 보인다

> s1 <- split(CLUST_K$SURFSKINTEMP, CLUST_K$SURFAIRTEMP,CLUST_K$TOTH2OVAP, CLUST_K$TOTO3) 
> Tr <- as(s1,"transactions") 
Warning message: 
In asMethod(object) : removing duplicated items in transactions 
> Tr 
transactions in sparse format with 
1 transactions (rows) and 
4 items (columns) 

거래가 1 건 남아 있지만 내 경우 6 건이되어야합니다.

+0

귀하의 S1은 다음과 같습니다 : $'6' [1] 단일 트랜잭션을받을 이유 (13) (1) (16) (16) (7) (13). discretize 함수를 사용해야합니다. –

+0

감사합니다. 내 데이터에 대해 감사합니다. 데이터에서 클러스터 수를 얻는 일부 클러스터링 작업을 수행 했으므로 데이터를 디스크리트화할 필요가 없습니다. 예를 들어, 13은 변수 SURFSKINTEMP를 클러스터링 한 후 13 번 클러스터를 나타냅니다. , 다음으로, 나는 단지 내 데이터 집합의 빈번한 항목 세트를 찾고 싶다. 그래서 나는 내 경우에 arules에 대한 데이터를 준비 할 수있다. 감사합니다. – Pan

답변

0

이미 (클러스터링을 통해) 데이터를 이산화 했으므로 데이터가 숫자가 아닌 정수 값 (요소)으로 인코딩되었는지 확인하면됩니다.

for(i in 1:ncol(CLUST_K_R)) CLUST_K_R[[i]] <- as.factor(CLUST_K_R[[i]]) 
CLUST_K_R_T <- as(CLUST_K_R,"transactions") 

summary(CLUST_K_R_T) 

transactions as itemMatrix in sparse format with 
6 rows (elements/itemsets/transactions) and 
30 columns (items) and a density of 0.3333333 

most frequent items: 
SURFAIRTEMP=6 MODIS_LST=1 TOTH2OVAP=17  TOTCO=12 OLR_NOAA=10  (Other) 
      6    6    5    4    4   35 

element (itemset/transaction) length distribution: 
sizes 
10 
6 

    Min. 1st Qu. Median Mean 3rd Qu. Max. 
    10  10  10  10  10  10 

includes extended item information - examples: 
      labels variables levels 
1 SURFSKINTEMP=1 SURFSKINTEMP  1 
2 SURFSKINTEMP=7 SURFSKINTEMP  7 
3 SURFSKINTEMP=13 SURFSKINTEMP  13 

includes extended transaction information - examples: 
    transactionID 
1    1 
2    2 
3    3