본문 바로가기
3. 딥러닝 (neuralnet 패키지)/2) 정규분포 학습 예제

[R 딥러닝 예제] 표준정규분포함수 만들기 #3. 학습결과 평가하기

by makhimh 2019. 12. 14.

#3. 학습결과 평가하기


우리가 예측한 결과가 잘 맞는다는 것을 어떻게 확인할 수 있을까요. 


먼저 실제 output과, 계산된 output 데이터를 가져옵시다. 지난시간까지 만든 코드를 실행하면 됩니다. 코드는 아래와 같습니다. 


library(neuralnet)


#data 생성

set.seed(1)

input=rnorm(1000)

output=dnorm(input)


#train 데이터를 배정합니다.

input_train=input[1:500]

output_train=output[1:500]


#test데이터를 배정합니다.

input_test=input[501:1000]

output_test=output[501:1000]


#train 데이터 input,output을 하나의 행렬로 묶기

my_data_train=cbind(input_train,output_train)


#neuralnet 함수를 이용하여 학습시키기

my_NN=neuralnet(output_train~input_train, data=my_data_train,

                hidden=c(3,3),

                threshold=0.01)


#test 데이터를 이용하여 ouptut 계산하기

input_test=as.matrix(input[501:1000],ncol=1)

output_predict=compute(my_NN,input_test)


비교할 데이터는 output_test와  output_predict$net.result 입니다. output_test는 실제값이고, output_predict$net.result는 우리가 학습시킨 신경망을 통해 계산된 값입니다. 


1) 상관계수


실제값과 계산값 사이의 상관계수를 구합니다. 


> cor(output_test,output_predict$net.result)

          [,1]

[1,] 0.9996308



2) 평균 제곱근 오차(RMSE)


실제값과 계산값 사이의 RMSE를 구합니다. 


> rmse(output_test,output_predict$net.result)

[1] 0.00314433


댓글