Bite Bits/R

다항 로지스틱 모델

상영 2019. 12. 21. 00:25

R에서는 nnet:multinom()을 사용해 다항 로지스틱 회귀 모델을 작성할 수 있다.


library(nnet)

model <- nnet::multinom(Species ~. , data=iris)

head(fitted(model)) # 적합 확인


> head(fitted(model)) # 적합 확인 

     setosa   versicolor    virginica

1 1.0000000 1.526406e-09 2.716417e-36

2 0.9999996 3.536476e-07 2.883729e-32

3 1.0000000 4.443506e-08 6.103424e-34

4 0.9999968 3.163905e-06 7.117010e-31

5 1.0000000 1.102983e-09 1.289946e-36

6 1.0000000 3.521573e-10 1.344907e-35


교차검증을 통해 해당 분석방법의 적합성을 판단해볼 수 있다.

# 5-fold cross validation

group.1 <- cut(seq(1,50), breaks=5, labels=F)

group.2 <- cut(seq(51,100), breaks=5, labels=F)

group.3 <- cut(seq(101,150), breaks=5, labels=F)

fold <- c(group.1, group.2, group.3)


acc <- c() # accuracy for each fold

for (i in 1:5) {

  ds.tr <-iris[fold != i, ]

  ds.ts <-iris[fold == i, ]

  

  m <- multinom(Species ~. , data=ds.tr)

  pred <- predict(m, newdata=ds.ts[,1:4])

  acc[i] <- mean(pred==ds.ts[,5]) # 예측 정확도

}


acc

mean(acc)


> acc

[1] 1.0000000 1.0000000 0.9333333 0.9333333 1.0000000

> mean(acc)

[1] 0.9733333


참고 : 

[1]: https://m.blog.naver.com/htk1019/221016607168 "R로하는 기계학습 실습 1편 : 로지스틱 회귀"

[2]: https://datascienceschool.net/view-notebook/07f92f2b2719461197260d7468f37084/ "교차 검증"

'Bite Bits > R' 카테고리의 다른 글

바이올린 그림 vs 박스그림  (0) 2019.12.21
AIC, BIC  (0) 2019.12.21
How to download YouTube data in R  (0) 2019.11.08
R 기본 연산자 정리  (0) 2019.11.06
[R] R 에서 excel 파일 읽어오기  (0) 2018.02.07