감정분석이 얼마나 정확한가 확인하기
극(polarity) 감정 점수 0 or 1로 변환하기
senti.lm.b <- ifelse(senti.lm > 0, 1, 0)
senti.lasso.b <- ifelse(senti.lasso > 0, 1, 0)
senti.ridge.b <- ifelse(senti.ridge > 0, 1, 0)
senti.elastic.b <- ifelse(senti.elastic > 0, 1, 0)
정확도 계산하기
caret
현재 버전은 동영상과 달리 confusionMatrix
에 factor
로 변환해서 넣어줘야 합니다.
library(caret)
confusionMatrix(factor(senti.lm.b), factor(mobile$Sentiment))
confusionMatrix(factor(senti.lasso.b), factor(mobile$Sentiment))
confusionMatrix(factor(senti.ridge.b), factor(mobile$Sentiment))
confusionMatrix(factor(senti.elastic.b), factor(mobile$Sentiment))
더 엄밀한 정확도를 구하기 위해 테스트(test) 데이터 불러오기
mobile.test <- read.csv("mobile2014_test.csv", stringsAsFactors = F)
dim(mobile.test)
names(mobile.test)
테스트(test) 데이터의 DocumentTermMatrix 만들기
corpus <- Corpus(VectorSource(mobile.test$Texts))
dtm.test <- DocumentTermMatrix(corpus,
control = list(tolower = T,
removePunctuation = T,
removeNumbers = T,
stopwords = stopwords("SMART"),
weighting = weightTfIdf,
dictionary = Terms(dtm)))
테스트(test) 데이터의 극(polarity) 감정 점수 계산하기
senti.lm.test <- polarity(dtm.test, names(pos.lm), names(neg.lm))
senti.lasso.test <- polarity(dtm.test, names(pos.lasso), names(neg.lasso))
senti.ridge.test <- polarity(dtm.test, names(pos.ridge), names(neg.ridge))
senti.elastic.test <- polarity(dtm.test, names(pos.elastic), names(neg.elastic))
테스트(test) 데이터의 극(polarity) 감정 점수 0 or 1로 변환하기
senti.lm.b.test <- ifelse(senti.lm.test > 0, 1, 0)
senti.lasso.b.test <- ifelse(senti.lasso.test > 0, 1, 0)
senti.ridge.b.test <- ifelse(senti.ridge.test > 0, 1, 0)
senti.elastic.b.test <- ifelse(senti.elastic.test > 0, 1, 0)
테스트(test) 데이터의 정확도 계산하기
confusionMatrix(factor(senti.lm.b.test), factor(mobile.test$Sentiment))
confusionMatrix(factor(senti.lasso.b.test), factor(mobile.test$Sentiment))
confusionMatrix(factor(senti.ridge.b.test), factor(mobile.test$Sentiment))
confusionMatrix(factor(senti.elastic.b.test), factor(mobile.test$Sentiment))