Skip to content

DanShai/Genome

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Who Needs Neuron when you have Genome

Also updated version here

Faster Genome Network ala Neural Network! The Genome Network mimic the architecture of the Neural Network, contains Layers and Nodes. you can add activations and stuffs! the Advantage is to have a real expressive formula for your network instead of weights! Can be used for :

  • Classification.
  • Regression.
  • Kernel finder for better understanding the data
  • Feature extraction

The Genome parameters are:

nrOpts = {"opx": 2, "depth": 2, "nvars": None,
    "pvc": .7, "pf": 1., "cross": .4, "mut": .6,"mrand": .5
    }

The Network parameters are:

gOpts = {"mxepoch": 3000, "bsize": 64, "bupdate": 5, "fraction": .5,"history": 4,
 "mxtries": 10,"mode": this one take either "REG"  or "CLA" }

you can fine tune them to your need.

check the GOerationsDef.py file for the list of functions can the Genome take! you can then select what slot / group of functionalities your Genome will use for solving the problem! set the group index in the variable "opx" of the genome option : nrOpts = {"opx": 2,..}

  • group 1 : basic operations add and multiply
  • group 2 : logarithmic functions
  • group 3 : periodic functions
  • group 4 : mix of 2 & 3 above
  • group 5: logical functions
  • group 6 : all the functions
class GOperationsDef:
        ...
        self._FunctSlots = {
            1: [self.mul_o, self.add_o],
            2: [self.mul_o, self.sub_o, self.add_o, self.log_o, self.sqrt_o, self.exp_o],
            3: [self.mul_o, self.sub_o, self.add_o, self.sqrt_o, self.cos_o, self.sin_o],
            4: [self.inv_o, self.abs_o, self.div_o, self.mul_o, self.sub_o, self.add_o, self.log_o, self.sqrt_o, self.exp_o, self.cos_o, self.sin_o],
            5: [self.max_o, self.min_o, self.if_o, self.lt_o, self.gt_o, self.not_o, self.xor_o, self.and_o, self.or_o],
            6: [self.inv_o, self.div_o, self.mod_o, self.xor_o, self.and_o, self.or_o, self.mul_o, self.sub_o, self.add_o,
                self.log_o, self.sqrt_o, self.exp_o, self.cos_o, self.sin_o, self.max_o, self.min_o, self.abs_o, self.if_o, self.gt_o, self.lt_o, self.not_o]
        }

Regression

Screenshot

Classification for iris example

Screenshot