본문 바로가기
전공수업/데이터마이닝

데이터마이닝 강의자료

by bibibig_data 2021. 6. 2.

 

7장_k-인접이웃분류 (4).pdf
0.45MB
8장_신경망모형 (3).pdf
0.64MB
R의 neuralnet을 활용한 신경망분석.pdf
1.11MB

 

 


caret을 이용한 신경망 모형 적합

 

예제1

library(nnet)
nn.iris <- nnet(Species~., data=iris, size=2, rang=0.1, decay=5e-4, maxit=200)
# 은닉층의  노드  수(size)는  2, 초기  랜덤  가중치의  범위는  [-0.1, 0.1], weight decay 모수는  0(디폴트), 최대반복수는  200(디폴트는  100)
summary(nn.iris)  
nn.iris
nn.iris$wts
nn.iris$value
nn.iris$fitted.values

library(clusterGeneration)
library(scales)
library(reshape)
plot(nn.iris)

table(iris$Species, predict(nn.iris, iris, type = "class"))

# caret
# 모수 조율 : 5-fold cross validation 을 5번 반복하여 가장 좋은 후보의 모수를 찾는 방법
library(caret)
fitControl <- trainControl(method = "repeatedcv", number = 5, repeats = 5)

model_nnet <- train(Species~., data=iris, method="nnet", trControl = fitControl, preProc=c("center","scale"))
model_nnet
plot(model_nnet)
predictions <- predict.train(model_nnet, iris, type = "raw")
table(predictions)
confusionMatrix(predictions,iris$Species)

predictions_prob <- predict.train(model_nnet, iris, type = "prob")
predictions_prob

 

 


 

 

예제3

library(neuralnet)
train.input <- as.data.frame(runif(50, min=0, max=100))
train.output <- sqrt(train.input)
train.data <- cbind(train.input, train.output)
colnames(train.data) <- c("Input","Output")
head(train.data)
net.sqrt <- neuralnet(Output~Input,train.data, hidden=10, threshold=0.01)
print(net.sqrt)
plot(net.sqrt)
test.data <- as.data.frame((1:10)^2)
colnames(test.data) <- c("Input")
test.out <- compute(net.sqrt, test.data)
ls(test.out)
print(test.out$net.result)
test.out$neurons

net2.sqrt <- neuralnet(Output~Input,train.data, hidden=c(10,8), threshold=0.01)
plot(net2.sqrt)
test2.out <- compute(net2.sqrt, test.data)
print(test2.out$net.result)




# caret
# 모수 조율 : 5-fold cross validation 을 5번 반복하여 가장 좋은 후보의 모수를 찾는 방법
fitControl <- trainControl(method = "repeatedcv", number = 5, repeats = 5)

model_caret <- train(Output~Input, data=train.data, method="neuralnet", trControl = fitControl, tuneGrid = data.frame(layer1 = 1:2, layer2 = 0, layer3 = 0), preProc=c("center","scale"))
plot(model_caret)
print(model_caret)

test_pred <- predict(model_caret, test.data)
test_pred


9장_서포트벡터머신_보충자료.pdf
0.39MB

 

'전공수업 > 데이터마이닝' 카테고리의 다른 글

서포트 벡터 머신 과제  (0) 2021.06.02
신경망 모형 과제  (0) 2021.06.02
중간고사 과제  (0) 2021.06.02
데이터 분할  (0) 2021.06.02