我正在建立一個神經網絡來根據許多變量來預測「擬合」。 「FitCls」分爲三類:「優秀」,「好」和「差」。我有10個輸入變量,並且選擇了一個隱藏層和6個神經元。我想要三個輸出神經元,這樣我可以將呈現給神經網絡的情況歸類爲「優秀」,「好」或「差」的「適合」。 我已經看到一個類似的例子,這裏使用虹膜數據(在幻燈片40以及以下)完成:http://www.slideshare.net/DerekKane/data-science-part-viii-artifical-neural-network。我試圖複製那個結構,但是當我繪製網絡時,我仍然只能得到一個輸出節點。如何使用R中的neuralnet軟件包編程多個輸出節點?
這裏是我的代碼(裝載了「nfit」數據幀後):
nfit[nfit$FitCls=="Excellent", "Output"] <- 2
nfit[nfit$FitCls=="Good", "Output"] <- 1
nfit[nfit$FitCls=="Poor", "Output"] <- 0
nn <- neuralnet(Output~Universalism+Benevolence+Tradition+Conformity+Security+Power+Achievement+Hedonism+Stimulation+SelfDir, data = nfit, hidden = 6, err.fct = "ce", linear.output = FALSE)
當我運行neuralnet,它給了我一個警告信息,它迫使err.fct爲「上交所」,因爲響應不是二元的。我不確定發生了什麼問題,因爲在我複製的例子中,神經網絡的圖表顯示了三個輸出節點。請讓我知道我做錯了什麼。
如果這不是使用神經網絡進行分類的正確方法,我也將非常感謝您爲我應該做的事情提供的任何幫助。非常感謝!
也許庫正在將你的響應變量當作一個數字。您是否嘗試將「FitCls」列放入因子列中? 'nfit $ FitCls < - as.factor(nfit $ FitCls)' – ialm
感謝您的迴應。我曾嘗試過,但神經網似乎無法以這種方式處理因素。這種方法適用於nnet,但出於某種原因,與神經網絡無關。 –