R - Экспорт логики нейронной сети как функции из R в JavaScript или PHP - PullRequest
0 голосов
/ 30 сентября 2018

Используя R и следующий код:

printf <- function(...)print(sprintf(...))

data <- read.csv("https://www.dropbox.com/s/ig4szbkp43kpin1/binary.csv?dl=1", header = TRUE)

data$gre <- (data$gre - min(data$gre)) / (max(data$gre) - min(data$gre))
data$gpa <- (data$gpa - min(data$gpa)) / (max(data$gpa) - min(data$gpa))
data$rank <- (data$rank - min(data$rank)) / (max(data$rank) - min(data$rank))

# Data Partition
set.seed(222)
ind <- sample(2, nrow(data), replace = TRUE, prob = c(0.7, 0.3))
training <- data[ind==1,]
testing <- data[ind==2,]

# Neural Network training
library(neuralnet)
set.seed(333)
n <- neuralnet(admit~gre+gpa+rank,
               data = training,
               hidden = 1,
               err.fct = "ce",
               linear.output = FALSE)
plot(n)

params = training[1, -1]

# Prediction 1:
output_A <- compute(n, params)$net.result[1]

# Prediction 2:
in4 <- 0.0455 + (0.82344*params[1]) + (1.35186*params[2]) + (-0.87435*params[3])
out4 <- 1/(1+exp(-in4))
in5 <- -7.06125 +(8.5741*out4)
out5 <- 1/(1+exp(-in5))
output_B = out5[1,1]

printf('Value A: %.5f', output_A)
printf('Value B: %.5f', output_B)

Я создал это Neural Network:

enter image description here

который эквивалентен фрагменту кода (снова вставлен ниже):

# Prediction 2:
in4 <- 0.0455 + (0.82344*params[1]) + (1.35186*params[2]) + (-0.87435*params[3])
out4 <- 1/(1+exp(-in4))
in5 <- -7.06125 +(8.5741*out4)
out5 <- 1/(1+exp(-in5))
output_B = out5[1,1]

Мой вопрос: есть ли какой-нибудь способ автоматически экспортировать код чуть выше как своего рода функцию, не имеянаписать это вручную?Моя цель - использовать его на PHP, JavaScript и т. Д.

Спасибо!

...