[R] Apa yang harus dilakukan ketika terjadi kesalahan pada fungsi neuralnet

2018 11 年 月 日 15

fungsi jaringan saraf

Fungsi neuralnet adalah salah satu perpustakaan jaringan saraf di R.Kelebihan dari library ini adalah learner yang dibuat dapat divisualisasikan langsung oleh plot(), dan grafik komputasi serta nilai bobot/bias dapat dilihat secara sekilas.
Berikut ini adalah memo yang juga berfungsi sebagai memorandum karena saya tersandung dengan berbagai cara ketika saya melakukan klasifikasi multi-kelas dengan dataset iris sebagai latihan.Saat benar-benar mencoba jaringan saraf di R, saya sarankan memilih perpustakaan lain yang lebih mudah digunakan.

Kesalahan dan solusi saat menjalankan neuralnet

Kesalahan input dalam variabel kualitatif

Dalam banyak fungsi R, ketika variabel kualitatif didefinisikan sebagai tipe faktor, itu secara otomatis diperlakukan sebagai variabel dummy (python tidak memiliki tipe faktor, dan fungsi get_dummies panda dll. membagi variabel kualitatif menjadi 0 atau 1 membuat a kolom yang menunjukkan milik siapa). Karena fungsi neuralnet hanya dapat menangani variabel kuantitatif, variabel kualitatif seperti "Spesies" di iris tidak dapat dikenali dengan benar dan terjadi kesalahan.Jalankan kode berikut untuk mengonversi variabel kualitatif menjadi variabel dummy.

library(caret) 
tmp <- dummyVars(~.,data=train) 
dummy <- as.data.frame(predict(tmp, train))

Formula untuk klasifikasi multi-kelas

Fungsi nnet dapat ditulis sebagai berikut.Di sini, untuk Spesies, variabel lain ditetapkan sebagai variabel penjelas (".” berarti selain variabel tujuan).

library(nnet) 
nn1 <- nnet(formula = Species ~ ., size=5, data=train)

Karena variabel penjelas telah dibuat menjadi variabel dummy, rumusnya dijelaskan dengan menghubungkan semua kelas yang akan diklasifikasikan dengan "+".

library("neuralnet") f = Species.setosa + Species.versicolor + Species.virginica       
~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width 
nn2 <- neuralnet(formula = f, data = dummy)

结果

Anda telah berhasil mengklasifikasikan iris.