我想你的意思是這段代碼
f <- as.formula(paste("pred_con ~", paste(n[!n %in% "pred_con"], collapse = " + ")))
所以讓我們一塊打破下來一塊。
f是變量名。
as.formula強制變量類型爲「公式」類型。其中具有Response_Variable_1 + Variable_2的一般形式。這就是說:使用變量1和變量2來預測響應值。
粘貼是連接字符串片段的函數。所以
paste("Str","ing",sep="")
會給「字符串」,與sep =「」說給我一個輸入之間的分隔「」。這是什麼都沒有
在代碼中,它使用了在第二個粘貼函數中使用的值爲「+」的加號。
paste(n[!n %in% "pred_con"], collapse = " + ")
n是train_列的名稱設置
n <- names(train_)
所以粘貼(N,崩潰= 「+」)會給使用的每個列名和它們之間的+號。
但是,我們不想要「pred_con」我們試圖預測的值。這是在該代碼行的前面部分處理的。
因此,n [%n%in「pred_con」]表示每個名稱,而不是「pred_con」。
所以從
paste(n[!n %in% "pred_con"], collapse = " + ")
我們得到每個列名與他們之間的+號,比 「pred_con」
另一方面,我們想從Y〜X1 + X2的
所以公式使用另一個粘貼語句將「pred_con」粘貼到我們剛創建的列名稱列表的前面。給我們:
paste("pred_con ~", paste(n[!n %in% "pred_con"], collapse = " + "))
最後,我們做類型的公式,而不是字符串,所以我們用as.formula功能包裹。
現在給我們帶來的全部行:
f <- as.formula(paste("pred_con ~", paste(n[!n %in% "pred_con"], collapse = " + ")))
最後兩行只是使用神經網絡包的東西,所以我不會專注於它。
nn <- neuralnet(f,data=train_,hidden=c(5,3),linear.output=T)
這只是訓練你的神經網絡。並存儲爲「NN」
pr.nn <- compute(nn,test_[,1:5])
這是預測「TEST_」設定的值,使用「NN」,並將它們存儲在「pr.nn」