movie.csv
0.00MB
movie_test.csv
0.00MB

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#1. 워킹 디렉토리 지정
setwd("c:\\data")
 
# 2. 라이브러리 선언
library(e1071)
 
# 3. 데이터 로드
movie <- read.csv("movie.csv", header=T, stringsAsFactors=TRUE)
str(movie) # factor로 변환되었는지 확인
nrow(movie) # 39
 
# 4. 컬럼명을 영어로 변경
View(movie)
colnames(movie) <- c("age","gender","job","marry","friend","m_type")
 
View(movie)
 
# 5. train(38) / test(1)
train <- movie[1:38,]
test <- movie[39,]
 
train
test
 
# 6. 나이브 베이즈로 학습
#                     훈련데이터       라벨
model <- naiveBayes(train[ ,1:5], train$m_type , laplace=0)
# +) 나이브 베이즈를 이렇게도 학습 시킬 수 있음
# model <- naiveBayes(m_type~.,data=train,laplace=0) # m_type~. : 예측하고자 하는 라벨
 
#7. 예측 결과
result <- predict(model, test[,1:5])
# 그냥 test 데이터만 줘도 m_type은 predict를 위한 학습 데이터에서 사용되지 않기 때문에 상관은 x
result
 
test2 <- data.frame(age='20대', gender='여', job='IT', marry='NO',friend='NO')
result <- predict(model, test2)
result # 로맨틱
 
test3 <- data.frame(age='20대', gender='남', job='학생', marry='NO',friend='NO')
result <- predict(model, test3)
result # 코미디
 
# 입력 받은 파일 예측하기
fname <- file.choose()
test4 <- read.csv(fname,header=T,stringsAsFactors=T)
# 컬럼명을 똑같이 해줘야 제대로 결과를 낼 수 있음 (따라서 순서 상관 x)
names(test4) <- c("age","gender","job",'marry','frined')
 
result <- predict(model,test4)
result # 스릴러
cs

 

 

 

 

+ Recent posts