R에서 신경망 시각화

2018/11/14

R의 신경망 시각화 패키지

neuralnet 함수는 표준으로 plot() 함수에 의해 계산 그래프를 시각화할 수 있다. neuralnet 함수와 같은 기능이 없는 다른 신경망 패키지를 사용했을 때의 계산 그래프의 시각화 방법을 아래에 메모.

  • plot.nn 함수
  • plotnet 함수

아래 준비

샘플 데이터는 iris를 사용

학습기 만들기

d=iris d$Species <- as.factor(d$Species) #train_test_split set.seed(0) sample <- sample.int(n = nrow(d), size = floor(0.80*nrow(d)), replace = F) train <- d[sample, ] test <- d[-sample, ] summary(train) #nnet library(nnet) nn1=nnet(Species~., size=5, data=train) pred_nn1 <- predict(nn1, test,type="class") table(test$Species,pred_nn1)

nnet 시각화

둘 다 색으로 음수를, 굵기로 숫자의 크고 작은 것을 나타냅니다.

plot.nn 함수

source("http://hosho.ees.hokudai.ac.jp/~kubo/log/2007/img07/plot.nn.txt") plot.nn(nn1)

 


plot.nnet 함수

install.packages("NeuralNetTools") library(NeuralNetTools) plotnet(nn1)

 

 

그건 그렇고, neuralnet 함수에서

library(caret) tmp <- dummyVars(~.,data=train) dummy <- as.data.frame(predict(tmp, train)) library("neuralnet") f = Species.setosa + Species.versicolor + Species. virginica~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width nn2 <- neuralnet(formula = f, data = dummy) plot(nn2)

 

변수가 많아지는 경우는 가로 방향의 plotnet 함수에 의한 가시화 쪽이 보기 쉽네요. plotnet 함수는, nnet 뿐만 아니라 RSNNS나 caret로 작성한 신경망도 가시화할 수 있어 적응 범위가 넓기 때문에 사용하기 쉽습니다.