Степанов Аполлон Владимирович : другие произведения.

Пример модуля прогнозирования функции с помощью нейросети на R

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
 Ваша оценка:
  • Аннотация:
    Ключевые слова: нейросети, прогнозирование, 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.
  net.sqr <- neuralnet(output~input,data, hidden=10, threshold=0.01)
  print(net.sqr)
  
  #Plot the neural network
  #plot(net.sqr)
  #Рисование графика нейросети для себя я отключил за ненадобностью, но если кому-то интересно, уберите #
  
  #Вычисление по обученной модели нейросети. Конкретно здесь подставляется число 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)
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"