Skip to content

Commit

Permalink
Merge branch 'master' of github.com:EpistasisLab/srbench
Browse files Browse the repository at this point in the history
  • Loading branch information
lacava committed Sep 22, 2021
2 parents 607b790 + bafbad2 commit c63a3d2
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 15 deletions.
Binary file modified experiment/methods/src/mrgp/mrgp.jar
Binary file not shown.
28 changes: 16 additions & 12 deletions experiment/methods/src/mrgp/mrgp.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
class MRGPRegressor(BaseEstimator):
def __init__(self, g=10, popsize=100, rt_mut=0.5,
rt_cross=0.5, max_len=10, time_out=10*60,
tmp_dir=None
tmp_dir=None, n_jobs=1, random_state=None
):
self.g = g
self.popsize = popsize
Expand All @@ -21,6 +21,8 @@ def __init__(self, g=10, popsize=100, rt_mut=0.5,
self.max_len = max_len
self.time_out = time_out #in seconds
self.tmp_dir = tmp_dir
self.n_jobs = n_jobs
self.random_state = random_state

def fit(self, features, target, sample_weight=None, groups=None):
data=pd.DataFrame(features)
Expand All @@ -40,17 +42,19 @@ def fit(self, features, target, sample_weight=None, groups=None):
data.to_csv(self.dataset+'-train',
header=None,
index=None)
subprocess.check_output(['java', '-jar',
THIS_DIR+'/mrgp.jar',
'-train',
self.dataset,
str(self.g),
str(self.popsize),
str(self.rt_mut),
str(self.rt_cross),
str(self.max_len),
str(self.time_out)
])
output = ['java', '-jar', THIS_DIR+'/mrgp.jar',
'-train',
self.dataset,
str(self.g),
str(self.popsize),
str(self.rt_mut),
str(self.rt_cross),
str(self.max_len),
str(self.time_out),
str(self.n_jobs)
]
output = output+[str(self.random_state)] if self.random_state != None else output
subprocess.check_output(output)
# get model and complexity
self.model_, self.complexity_ = self._get_model()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public void printUsage(){

public void parseSymbolicRegressionTrain(String args[]) throws IOException{
String dataPath;
int numMinutes=0;
int numMinutes = 10*60;
String propsFile = "";
SymbRegMOO srEvoGPj;
dataPath = args[1];
Expand All @@ -63,6 +63,21 @@ public void parseSymbolicRegressionTrain(String args[]) throws IOException{
String mut_rate = args[4];
String crossover_rate = args[5];
String max_length = args[6];
String external_threads = "4";
String rng_seed = "";
// Add a time limit if specified by user
if (args.length >= 8){
numMinutes = Integer.parseInt(args[7]);
}
// Add a maximum number of threads if specified by user
if (args.length >= 9){
external_threads = args[8];
}
// Add a seed if specified by user
if (args.length >= 10){
rng_seed = args[9];
}

// run evogpj with standard properties
Properties props = new Properties();
//System.out.print(dataPath);
Expand All @@ -74,6 +89,12 @@ public void parseSymbolicRegressionTrain(String args[]) throws IOException{
props.put(Parameters.Names.TREE_INIT_MAX_DEPTH, max_length);
props.put(Parameters.Names.TREE_MUTATE_MAX_DEPTH, max_length);
props.put(Parameters.Names.TREE_XOVER_MAX_DEPTH, max_length);
if (args.length >= 9){
props.put(Parameters.Names.EXTERNAL_THREADS, external_threads);
}
if (args.length >= 10){
props.put(Parameters.Names.SEED, rng_seed);
}

/* if (args[2].equals("-minutes")) {
;
Expand Down Expand Up @@ -105,8 +126,8 @@ public void parseSymbolicRegressionTrain(String args[]) throws IOException{
System.exit(-1);
}
*/
//allow each job to run <10mins
srEvoGPj = new SymbRegMOO(props,10*60);
//allow each job to run around numMinutes
srEvoGPj = new SymbRegMOO(props,numMinutes);
Individual bestIndi = srEvoGPj.run_population();

}
Expand Down

0 comments on commit c63a3d2

Please sign in to comment.