본문 바로가기
SEMINAR/데이터마이닝

데이터마이닝 R - Neural Network 실습

by 스꼬맹이브로 2020. 5. 24.
728x90
반응형
SMALL

1. R을 이용하여  0< x <1 구간의 의 출력자료 100개를 생성하고 이를 신경망을 통해 적합

음... 잘 안보이지만 함수 neuralnet()을 사용하기 위하여 package “neuralnet”install하였다.

난수를 생성하여 사용할 것인데, 생성 전에 set.seed()함수를 통하여 난수를 생성할 때에 값이 바뀌지 않도록 설정한다.

train.input 에는 0~1사이의 숫자를 100개 생성하여 dataframe 형태로 저장한다.

또한 train.output에는 을 거친 데이터를 dataframe 형태로 저장한다.

마지막으로 train.data1열에는 train.input 데이터를, 2열에는 train.output 데이터를 삽입한다.

열의 이름을 “Input”“Output”으로 setting을 해준 후 결과를 확인한다.

neuralnet() 함수를 사용하여 train.data를 분석하였다. hidden node5개로 지정하였으며 코드는 다음과 같다.

코드 실행 결과는 다음 그림과 같다.

다음으로 구성을 시각화 하였다.

위에서 설정한 것과 같이 hidden node는 총 5개로 구성되었으며, 각각의 edge에는 가중치가 쓰여 있다. 여기서 hidden node의 수만 정하고 layer의 수는 정하지 않았는데, layer의 수도 정하고 싶다면 위의 함수에서 hidden = c(2,3) 과 같이 표현하면 된다. (예시는 layer 2, node 3개이다.)

이제 신경망 모형을 통하여 추정치와 실제 값이 얼마나 유사한지 확인할 차례이다. 다음은 test.data를 net.sinpi에 적합 시킨 결과이다.

test.data  net.sinpi에 적합 시킨 결과이다. 다음 결과를 해석하기 위해 상관관계와 RMSE를 구한다.

상관관계는 다음과 같이 강력한 음의 상관관계가 나온다. 이는 변수 x가 증가하면 변수 y가 감소한다고 자신있게 말할 수 있다.

또한 RMSE를 계산하였을 때, 약 2.03으로 나왔으며, RMSE가 작을수록 더 좋은 결과라고 할 수 있다.

 

 

 

 

 

마지막 해석부분에서 모자람이 많이 느껴진다.... 더 열심히 공부해야지!ㅜㅜ

728x90
반응형
LIST