[R] ما يجب القيام به عند حدوث خطأ في وظيفة الشبكة العصبية

2018 11 年 月 日 15

وظيفة الشبكة العصبية

تعد وظيفة الشبكة العصبية إحدى مكتبات الشبكات العصبية في R.ميزة هذه المكتبة هي أنه يمكن تصور المتعلم الذي تم إنشاؤه مباشرة باستخدام المؤامرة () ، ويمكن رؤية الرسم البياني للحساب وقيم الوزن / التحيز في لمحة.
فيما يلي مذكرة تعمل أيضًا كمذكرة لأنني تعثرت بطرق مختلفة عند إجراء تصنيف متعدد الفئات باستخدام مجموعة بيانات القزحية كممارسة.عند تجربة الشبكات العصبية في R ، يوصى باختيار مكتبة أخرى سهلة الاستخدام.

الخطأ والتعامل مع تنفيذ الشبكة العصبية

خطأ إدخال متغير نوعي

في العديد من وظائف R ، إذا حددت متغيرًا نوعيًا كنوع عامل ، فسيتم التعامل معه تلقائيًا كمتغير وهمي (لا يحتوي Python على نوع عامل ، ووظيفة pandas get_dummies إلخ. عمود للإشارة إلى ما إذا كان ينتمي). نظرًا لأن وظيفة الشبكة العصبية يمكنها التعامل مع المتغيرات الكمية فقط ، فإنها لا تستطيع التعرف بشكل صحيح على المتغيرات النوعية مثل "أنواع" القزحية ، وحدث خطأ.لتحويل متغير نوعي إلى متغير وهمي ، قم بتشغيل الكود التالي.

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

حول الصيغة في وقت التصنيف متعدد الفئات

في وظيفة nnet وما إلى ذلك ، يمكن كتابتها على النحو التالي.هنا ، بالنسبة للأنواع ، يتم تحديد المتغيرات الأخرى كمتغيرات توضيحية ("".يعني غير المتغير الهدف).

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

نظرًا لأنه تم تحويل المتغير التوضيحي إلى متغير وهمي ، فإن الصيغة تصف جميع الفئات التي سيتم تصنيفها من خلال ربطها بـ "+".

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

結果

لقد تمكنت من تصنيف القزحية بأمان.