GithubHelp home page GithubHelp logo

randomsearch's People

Contributors

jakob-r avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

randomsearch's Issues

R Error: “unused argument(x)”

I am working with the R programming language. I defined the following function and I am trying to perform the "random search" algorithm on this function.

First, I loaded the library:

#load library : https://cran.r-project.org/web/packages/randomsearch/index.html 

library(randomsearch)

Then, I defined the function:

 # create some data for this example
a1 = rnorm(1000,100,10)
b1 = rnorm(1000,100,10)
c1 = sample.int(1000, 1000, replace = TRUE)
train_data = data.frame(a1,b1,c1)


#define function (4 inputs x[1], x[2], x[3], x[4] and 4 outputs f1, f2, f3, f4)

fn <- function(i) {
   x1 <- x[i,1]; x2 <- x[i,2]; x3 <- x[i,3] ; x4 <- x[i,4]
   f <- numeric(4)
   #bin data according to random criteria
   train_data <- train_data %>%
       mutate(cat = ifelse(a1 <= x1 & b1 <= x3, "a",
                           ifelse(a1 <= x2 & b1 <= x4, "b", "c")))
   
   train_data$cat = as.factor(train_data$cat)
   
   #new splits
   a_table = train_data %>%
       filter(cat == "a") %>%
       select(a1, b1, c1, cat)
   
   b_table = train_data %>%
       filter(cat == "b") %>%
       select(a1, b1, c1, cat)
   
   c_table = train_data %>%
       filter(cat == "c") %>%
       select(a1, b1, c1, cat)
   
   
   #calculate  quantile ("quant") for each bin
   
   table_a = data.frame(a_table%>% group_by(cat) %>%
                            mutate(quant = ifelse(c1 > 150,1,0 )))
   
   table_b = data.frame(b_table%>% group_by(cat) %>%
                            mutate(quant = ifelse(c1 > 300,1,0 )))
   
   table_c = data.frame(c_table%>% group_by(cat) %>%
                            mutate(quant = ifelse(c1 > 400,1,0 )))
   
   f1 = mean(table_a$quant)
   f2 = mean(table_b$quant)
   f3 = mean(table_c$quant)
   
   
   #group all tables
   
   final_table = rbind(table_a, table_b, table_c)
   # calculate the total mean : this is what needs to be optimized
   
   f4 = mean(final_table$quant)
   
   #add some constraints
   if((x3 - x1) < 0. | (x4 - x2) < 0.) {
       f[1] <- NaN
       f[2] <- NaN
       f[3] <- NaN
       f[4] <- NaN
       
   }
   
   return (f)
}

Finally, I tried to run the "random search" algorithm on this function:

#run algorithm
res = randomsearch(fn, lower = c(80, 80, 80, 80), upper = c(100,120,100,120), minimize = c(TRUE, TRUE, TRUE, TRUE), max.evals = 30)
rs = summary(res)

But this resulted in the following error:

Error in fun(x, ...) : unused argument (x)
Does anyone know why this error is being produced? Is it related to the way I have defined the function "fn"?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.