[R] จะทำอย่างไรเมื่อเกิดข้อผิดพลาดในฟังก์ชันนิวรัลเน็ต
ฟังก์ชันนิวรัลเน็ต
ฟังก์ชัน neuralnet เป็นหนึ่งในไลบรารีเครือข่ายประสาทใน Rข้อดีของไลบรารีนี้คือผู้เรียนที่สร้างขึ้นสามารถมองเห็นได้โดยตรงด้วยพล็อต () และกราฟการคำนวณและค่าน้ำหนัก/อคติสามารถมองเห็นได้อย่างรวดเร็ว
ต่อไปนี้เป็นบันทึกที่ทำหน้าที่เป็นบันทึกด้วย เพราะฉันสะดุดหลายครั้งเมื่อฉันทำการจำแนกประเภทหลายคลาสด้วยชุดข้อมูลม่านตาเป็นแบบฝึกหัดเมื่อลองใช้โครงข่ายประสาทเทียมใน R จริง ๆ ฉันแนะนำให้เลือกไลบรารี่อื่นที่ใช้งานง่ายกว่า
ข้อผิดพลาดและวิธีแก้ไขเมื่อเรียกใช้ neuralnet
ข้อผิดพลาดในการป้อนข้อมูลในตัวแปรเชิงคุณภาพ
ในหลายๆ ฟังก์ชันของ R เมื่อตัวแปรเชิงคุณภาพถูกกำหนดเป็นประเภทแฟกเตอร์ จะถือว่าเป็นตัวแปรจำลองโดยอัตโนมัติ สร้างคอลัมน์ที่ระบุว่าใครเป็นของ) เนื่องจากฟังก์ชันนิวรัลเน็ตสามารถจัดการกับตัวแปรเชิงปริมาณเท่านั้น จึงไม่สามารถจดจำตัวแปรเชิงคุณภาพ เช่น "สปีชีส์" ในม่านตาได้อย่างถูกต้องและเกิดข้อผิดพลาดขึ้นดำเนินการโค้ดต่อไปนี้เพื่อแปลงตัวแปรเชิงคุณภาพเป็นตัวแปรจำลอง
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)
結果
คุณจำแนกม่านตาสำเร็จแล้ว
ดิสโก้
รายการความคิดเห็น
ยังไม่มีความเห็น