[R] Что делать при возникновении ошибки в функции нейронной сети

2018 год 11 месяц 15 день

функция нейронной сети

Функция нейронной сети - одна из библиотек нейронных сетей в R.Преимущество этой библиотеки заключается в том, что созданного учащегося можно визуализировать непосредственно с помощью plot (), а график вычислений и значения веса / смещения можно увидеть с первого взгляда.
Следующее - меморандум, который также служит меморандумом, потому что я по-разному споткнулся при выполнении мультиклассовой классификации с набором данных радужной оболочки глаза в качестве практики.При тестировании нейронных сетей в R рекомендуется выбрать другую простую в использовании библиотеку.

Ошибка и обработка при запуске нейронной сети

Ошибка ввода качественной переменной

Во многих функциях R, если вы определяете качественную переменную как тип фактора, она будет автоматически обрабатываться как фиктивная переменная (python не имеет типа фактора, функция pandas get_dummies и т. Д. Делит качественные переменные, а 0 или 1 - это то, что Create столбец, чтобы указать, принадлежит ли он). Поскольку функция нейронной сети может обрабатывать только количественные переменные, она не смогла правильно распознать качественные переменные, такие как «Виды» радужной оболочки, и произошла ошибка.Чтобы преобразовать качественную переменную в фиктивную, запустите следующий код.

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)

結果

Я смог безопасно классифицировать радужную оболочку.