RWeka

오늘 R 스크립트를 가지고 좀 놀다가 어떻게 하면 arff파일 포멧을 가지고 import를 시켜볼까 하다가RWeka라는 패키지 테스트까지 해보게 되었다.

어쩌다 최근에는 타의에 의해서 SAS에서 SPSS, Minitab까지 다뤄야 될 기회가 있어서 해보고 있는데, 역시나 R만한게 없는거 같다는 생각이 사용해보면 볼 수록 느껴진다. 게다가 오늘은 손에 익은 Weka 명령어와 모델 그리고 그것에서 나온 output까지 R에서 볼 수 있어서 너무 기분이 좋았다.

미국에서 통계툴 시장은 SAS와 R로 양분되는 것이 이미 기정 사실화된 상황인거 같은데, 그런데도 불구하고 작년인가 논문 통계작성 알바를 하면서 R을 써서 통계 결과를 분석해 줬더니 교수님에게 혼났다면서 SPSS로 해달라는 요청도 받아본 경험이 있는바, 아직 국내에서는 R은 좀 생소한 통계분석 툴(언어)인거 같다는 생각을 해본다(논문 분석에 신뢰성이 상대적으로 떨어질거라 생각될 수도 있는 R을 쓰는게 못미더운 것인지도…오픈소스여서?).

install.packages("RWeka")
library(RWeka)


cpu <- read.arff(system.file("arff", "cpu.arff", package = "RWeka"))
cpu

#선형회귀식 구하기
m <- LinearRegression(class~., cpu)
m
summary(m)

#Decision Tree 모델 만들기
DF2 <- read.arff(system.file("arff", "contact-lenses.arff", package = "RWeka"))
m2 <- J48(`contact-lenses` ~ ., data=DF2)
summary(m2)
table(DF2$`contact-lenses`, predict(m2))

#아래와 같은 깔끔한 Tree 그리기
if(require("party", quietly = TRUE))
  plot(m2)

tree

 

이런 그림도 잘 그려준다…

뭐 Weka에서 제공하는 강력한 기능을 모두 담고 있지는 않지만 이미 Weka에 익숙해 졌다면 R에서는 이것들을 사용해 보는것도 괜찮을 거라 생각한다.

일상에 게시되었습니다
0 0 votes
Article Rating
Subscribe
Notify of
guest

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Maria Kim S

저기요 혹시 리눅스 환경에서만 사용가능한가요?

gogamza

예전 코드에서 데이터 로딩 부분이 바뀌어 안돌아가는거였습니다.
코드 업데이트 했으니 예제는 잘 돌아갈겁니다.

박영석

이것 사용해보니 모델 만들어서 객체를 저장했다가 다시 불러서 사용하려니 Error in .jcall(x$classifier, “S”, “toString”) :
RcallMethod: attempt to call a method of a NULL object.

이런 메세지가 나오면서 사용이 안되더군요
save(객체,디렉토리),load(디렉토리) 이렇게 하면 사용이 가능한데 java랑 연동이되서 그런지 사용이 안되는데 이런 버그 리포팅 하려면 어떻게 해야하나요?