def fit(self,X,y,**param): self.neural_shape = param.get("neural_shape") self.n_input = self.neural_shape[0] self.n_output = self.neural_shape[-1] self.n_hidden = self.neural_shape[1] self.number_of_weights = self.n_hidden*(self.n_input+1)+self.n_output*(self.n_hidden+1) self.score_fn = FeedFlow(self.neural_shape) self.X = X self.y = y #setting params self.weights = G1DList.G1DList(self.number_of_weights) lim = np.sqrt(6)/np.sqrt((self.n_input+self.n_output)) #Khoi tao trong so self.weights.setParams(rangemin=-lim,rangemax=lim) # cai dat ham khoi tao self.weights.initializator.set(Initializators.G1DListInitializatorReal) #cai dat ham dot bien self.weights.mutator.set(Mutators.G1DListMutatorRealGaussian) #cai dat ham do thich nghi self.weights.evaluator.set(self.eval_score) # cai dat ham lai ghep self.weights.crossover.set(Crossovers.G1DListCrossoverUniform) #code genetic # thiet lap he so lai ghep self.ga = GSimpleGA.GSimpleGA(self.weights) self.ga.selector.set(Selectors.GRouletteWheel) self.ga.setMutationRate(self.mutation_rate) self.ga.setCrossoverRate(self.cross_rate) self.ga.setPopulationSize(self.pop_size) self.ga.setGenerations(self.pop_size) self.ga.terminationCriteria.set(GSimpleGA.ConvergenceCriteria) self.ga.evolve(freq_stats=self.freq_stats) self.best_archive = self.getParam() return self
def fit(self, X, y, **param): self.X = X self.y = y self.neural_shape = param.get('neural_shape') self.archive = param.get("archive") if param.has_key("top_k"): self.top_k = param.get("top_k") self.score_fn = FeedFlow(self.neural_shape) self.score_fn.set_weights(self.optimize(X, y)) return self
def fit(self, X, y,**param): self.X = X self.y = y if (param.has_key('neural_shape')): self.neural_shape = param.get("neural_shape") self.n_output = self.neural_shape[-1] self.n_hidden = self.neural_shape[1:-1] self.number_of_layers = len(self.neural_shape) else: self.n_input = len(X[0]) self.n_output = len(y[0]) self.neural_shape = self.hidden_nodes.tolist() self.neural_shape.insert(0, self.n_input) self.neural_shape.append(self.n_output) self.n_hidden = self.hidden_nodes self.archive = param.get("archive") if param.has_key("top_k"): self.top_k = param.get("top_k") self.score_fn = FeedFlow(self.neural_shape) self.score_fn.set_weights(self.optimize(X,y)) return self