1. 程式人生 > >8.2 機器學習—神經網路

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.resultcor(predicted_strength2, concrete_test$strength)