Types
Equations
Equations are specified as binary trees with the Node
type. Operators defined in Base
are re-defined for Node types, so that one can use, e.g., t=Node(1) * 3f0
to create a tree.
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(val::AbstractFloat)
Create a scalar constant node
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(feature::Int)
Create a variable node using feature feature::Int
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(var_string::String)
Create a variable node, using the format "x1"
to mean feature 1
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(var_string::String, varMap::Array{String, 1})
Create a variable node, using a user-passed format
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(op::Int, l::Node)
Apply unary operator op
(enumerating over the order given) to Node
l
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(op::Int, l::Union{AbstractFloat, Int})
Short-form for creating a scalar/variable node, and applying a unary operator
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(op::Int, l::Node, r::Node)
Apply binary operator op
(enumerating over the order given) to Node
s l
and r
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(op::Int, l::Union{AbstractFloat, Int}, r::Node)
Short-form to create a scalar/variable node, and apply a binary operator
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(op::Int, l::Node, r::Union{AbstractFloat, Int})
Short-form to create a scalar/variable node, and apply a binary operator
SymbolicRegression.CoreModule.EquationModule.Node
— MethodNode(op::Int, l::Union{AbstractFloat, Int}, r::Union{AbstractFloat, Int})
Short-form for creating two scalar/variable node, and applying a binary operator
Population
Groups of equations are given as a population, which is an array of trees tagged with score, loss, and birthdate–-these values are given in the PopMember
.
SymbolicRegression.PopulationModule.Population
— MethodPopulation(pop::Array{PopMember{T}, 1})
Create population from list of PopMembers.
SymbolicRegression.PopulationModule.Population
— MethodPopulation(dataset::Dataset{T}, baseline::T;
npop::Int, nlength::Int=3, options::Options,
nfeatures::Int)
Create random population and score them on the dataset.
SymbolicRegression.PopulationModule.Population
— MethodPopulation(X::AbstractMatrix{T}, y::AbstractVector{T},
baseline::T; npop::Int, nlength::Int=3,
options::Options, nfeatures::Int)
Create random population and score them on the dataset.
Population members
SymbolicRegression.PopMemberModule.PopMember
— MethodPopMember(t::Node, score::T, loss::T)
Create a population member with a birth date at the current time.
Arguments
t::Node
: The tree for the population member.score::T
: The score (normalized to a baseline, and offset by a complexity penalty)loss::T
: The raw loss to assign.
SymbolicRegression.PopMemberModule.PopMember
— MethodPopMember(dataset::Dataset{T}, baseline::T,
t::Node, options::Options)
Create a population member with a birth date at the current time. Automatically compute the score for this tree.
Arguments
dataset::Dataset{T}
: The dataset to evaluate the tree on.baseline::T
: The baseline loss.t::Node
: The tree for the population member.options::Options
: What options to use.
Hall of Fame
SymbolicRegression.HallOfFameModule.HallOfFame
— MethodHallOfFame(options::Options)
Create empty HallOfFame. The HallOfFame stores a list of PopMember
objects in .members
, which is enumerated by size (i.e., .members[1]
is the constant solution). .exists
is used to determine whether the particular member has been instantiated or not.
Dataset
SymbolicRegression.CoreModule.DatasetModule.Dataset
— MethodDataset(X::AbstractMatrix{T}, y::AbstractVector{T};
weights::Union{AbstractVector{T}, Nothing}=nothing,
varMap::Union{Array{String, 1}, Nothing}=nothing)
Construct a dataset to pass between internal functions.