Menafsirkan output jaringan saraf dalam R?

8

Saya berhasil membuat jaringan saraf data saya. Tapi saya tidak begitu yakin tentang interpretasi output R. Saya menggunakan perintah berikut untuk membuat jaringan saraf:

> net=nnet(formula = category~iplen+date_time, size=0,skip=T,lineout=T)
# weights:  3
initial  value 136242.000000 
final  value 136242.000000 
converged

Kemudian saya menggunakan perintah berikut untuk melihat hasilnya:

    > summary(net)
a 2-0-1 network with 3 weights
options were - skip-layer connections 
 b->o i1->o i2->o 
 0.64 -0.46  0.15

Jadi dari keluaran di atas, dapatkah saya menyimpulkan diagram jaringan saraf berikut ini ?: bersih

Pertanyaan kedua adalah bagaimana saya bisa tahu betapa berharganya diagram ini? Maksud saya, saya ingin mencari nomor kategori (variabel target) dari variabel independen. jadi sekarang bagaimana saya bisa memutuskan apakah jaringan ini benar-benar membantu saya untuk memprediksi kategori (variabel target)? Apa hasil akhirnya atau bagaimana menemukannya?

Bisakah saya menyimpulkan output berikut dari n-network di atas? :

category= -0.46(iplen)+0.15(date_time)+0.64

Salam,


sumber

Jawaban:

6

Penafsiran Anda terlihat benar. Anda dapat memeriksanya sendiri dengan memanggil predictbeberapa data dan membandingkan perhitungan Anda predict. Saya pertama kali melakukan ini dalam spreadsheet, dan kemudian saya menghitung jaringan saraf menggunakan metaprogramming .

Ngomong-ngomong, paket R neuralnetmenggambar diagram yang bagus, tetapi ternyata hanya mendukung regresi (bukan klasifikasi?).

Andrew
sumber
Andrew, Terima kasih atas jawabannya. Satu hal lagi yang ingin saya bahas ketika saya mendapatkan persamaan: kategori = -0,46 (iplen) +0,15 (date_time) +0,64 dari output nnet. sekarang saya dapat membandingkan ini dengan persamaan regresi yang dapat saya buat setelah melakukan regresi linier sebagai berikut: lm (kategori ~ iplen + date_time) dan kemudian persamaan regresi linier akan menjadi seperti: kategori = ß1 (iplen) + ß2 (date_time) + ß0
Tidak sepenuhnya jelas, tetapi klasifikasi dapat dicapai dengan mengatur `linear.output = FALSE` dalam neuralnetpaket. ref
Mr Tsjolder
Apa arti dari baris "iter 130 value 119841.088094" dan "final value 136242.000000"? Apa angka-angka itu?
skan
1
@skan: Itu adalah optimasi gradient descent
Andrew
5

Anda juga dapat menggunakan kode berikut untuk memplot hasil nnet

install.packages("devtools")
library(devtools)
source_url('https://gist.githubusercontent.com/fawda123/7471137/raw/466c1474d0a505ff044412703516c34f1a4684a5/nnet_plot_update.r')

#plot each model
plot.nnet(net)

referensi: https://beckmw.wordpress.com/tag/nnet/

Fahad Malik
sumber
Hm, itu menarik, tetapi tidak merencanakan dengan baik dalam kasus saya (sepertinya tidak ingin memasukkan informasi berat). Namun, upvoting karena memiliki lebih banyak alat lebih baik daripada memiliki lebih sedikit!
Ken