8.2 机器学习—神经网络

神经网络
激活函数:将神经元的净输入信号转换成单一的输出信号,以便进一 步在网络中传播。
网络拓扑:描述了模型中神经元的数量以及层数和它们连接的方式。
训练算法:指定如何设置连接权重,以便抑制或增加神经元在输入信 号中的比重。

concrete.R:判断强度是否合格

concrete <- read.csv("concrete.csv")
str(concrete)
#缩放/归一化,定义函数
normalize <- function(x){
  return ((x - min(x)) / (max(x) - min(x)))
}

concrete_norm <- as.data.frame(lapply(concrete, normalize))
summary(concrete_norm$strength)
summary(concrete$strength)
#取1-773行,所有列的数据,训练集
concrete_train <- concrete_norm[1:773,]
#测试集
concrete_test <- concrete_norm[774:1030,]
#neuralnet代表神经网络算法
concrete_model <- neuralnet (strength ~ cement + slag + ash + water + superplastic + coarseagg + fineagg + age, data=concrete_train)
#显示图像
plot(concrete_model)

#取到1-8列
concrete_test[1:8]
#模型和测试数据进行对比
model_results <- compute(concrete_model, concrete_test[1:8])
predicted_strength <- model_results$net.result
#计算相关系数
cor(predicted_strength, concrete_test$strength)

#hidden=5代表隐藏层5个节点
concrete_model2 <- neuralnet(strength ~ cement + slag + ash + water + superplastic + coarseagg + fineagg + age, data=concrete_train, hidden=5)
plot(concrete_model2)

model_results2 <- compute(concrete_model2, concrete_test[1:8])
predicted_strength2 <- model_results2$net.result
cor(predicted_strength2, concrete_test$strength)

猜你喜欢

转载自blog.csdn.net/u011418530/article/details/80921663
8.2