Аннотация: Ключевые слова: нейросети, прогнозирование, R
Найти нормальные примеры на R по прогнозированию функций на R целая проблема, поэтому я решил вставить свои пять копеек, может быть кому-то это поможет.
Для начала ставим R. Я ставил и на windows (https://cran.r-project.org/bin/windows/base/) и на ubuntu:
$ sudo apt update
$ sudo apt -y install r-base
Запуск скрипта в Windows прост, с этим вы разберетесь сами. В ubuntu команда Rscript.
А теперь сам пример модуля, сохранил оригинальные пометки:
library("neuralnet")
# 1. creating the initial data, plotting
# Здесь вводятся данные
data <- data.frame (
input = c(1, 2, 3, 4, 5, 6, 7, 8, 9),
output = c(1, 4, 9, 16, 25, 36, 49, 64, 81)
)
# Если кто-то хочет посмотреть как данные выглядят, то в следующей строке уберите #
#plot(data$output ~ data$input, main="Distribution of the pension relative to the salary", xlab="Salary", ylab="Pension")
#Обучение нейросети
#Train the neural network
#Going to have 10 hidden layers
#Threshold is a numeric value specifying the threshold for the partial
#derivatives of the error function as stopping criteria.
#Рисование графика нейросети для себя я отключил за ненадобностью, но если кому-то интересно, уберите #
#Вычисление по обученной модели нейросети. Конкретно здесь подставляется число 3. В вашем случае, это может быть другое число или переменная. В примере, других примерах еще была нормализация данных. Но после проверки оказалось, что она или не работала, или работала неверно. Поэтому, конкретно для себя я её удалил.
#Test the neural network on some training data
testdata <- as.data.frame(3) #Generate some squared numbers
net.results <- compute(net.sqr, testdata) #Run them through the neural network
#Дальше идут выводы результатов
#Lets see what properties net.sqr has
ls(net.results)
#Lets see the results
print(net.results$net.result)
#Lets display a better version of the results
cleanoutput <- cbind(testdata,testdata*testdata,
as.data.frame(net.results$net.result))
colnames(cleanoutput) <- c("Input","Expected Output","Neural Net Output")
print(cleanoutput)