R에서 쓸 수 있는 기계 학습 패키지 중에서 maximum entropy 패키지 사용법을 정리해본다.


내가 사용한 패키지는 Timothy P. Jurka, Yoshimasa Tsuruoka가 제작한 maxent 패키지인데, 메모리 사용량을 최소화해서 데이터량이 매우 많아도 잘 동작한다고 한다. 이번에는 사용법을 익히는 것까지만 했기 때문에 실제로 어느정도의 데이터까지 다룰 수 있는지는 확인하지 못했지만, 곧 확인해볼 생각이다.


1. 패키지 설치

일반적인 R 패키지와 마찬가지로 install.packages('maxent') 명령으로 쉽게 설치가 가능하다.


2. 사용

R에 기본으로 포함되어 있는 iris 데이터셋을 이용해 학습과 평가를 수행해보았다.


library(maxent);


# shuffling the data

m = dim(iris)[1];

i = sample(1:m, m, replace=F);

data = iris[i, ];


# splite data

train = data[1:100, ];

test = data[101:150, ];


train_feature = train[, c(1,2,3,4)];

train_class = train[, 5];

test_feature = test[, c(1,2,3,4)];

test_class = test[, 5];


# training

model = maxent(train_feature, train_class);


# testing and measuring performances

pred = predict(model, test_feature);

result = test_class == pred[,1];

summary(result);

table(test_class, pred[,1]);


iris 데이터가 각 클래스별로 정렬이 되어 있기 때문에 smaple() 함수를 이용해 데이터를 섞은 다음에 100개의 학습 집합과 50개의 테스트 집합으로  나눴다. 그리고 각 집합에서 자질 부분과 레이블(class) 부분을 추출했다.

maxent() 함수를 이용해 학습을 수행한 후, 그 결과로 생성되는 모델을 predict() 함수에 넣어서 예측을 수행한다. 


한가지 아쉬운 부분은 maxent 패키지에는 평가와 관련된 기능이 없다는 것이다. 정확도나 confusion matrix를 출력해주는 기능이 없기 때문에 위와 같이 실제 정답과 predict() 결과를 비교한 다음에 summary() 함수나 table() 함수 등을 이용해 결과를 확인해야 한다.



 


WRITTEN BY
trowind
자연어처리, 프로그래밍, 여행, 음식, 삶의 기록

트랙백  0 , 댓글  0개가 달렸습니다.
secret