Posted

The new linking functions added to GeneXproTools with this mini-release include a total of 6 discrete output classifier functions of 2 and 3 outputs. All these functions showed good performance on the Iris dataset both as normal building blocks when added to the default function set and also as linking functions in systems with 2 and more genes.

In the 3-output category we implemented 3 new linking functions, all of them with outputs of the form {-1, 0, 1}. One of these linkers is the buy-sell-wait function (represented in GeneXproTools as CL3A) described in the post "Function Design: The BUY-SELL-WAIT Function". The other two are the new 3-output classifier functions CL3B and CL3C introduced in the post "Function Design: More 3-Output Classifier Functions".

In the binary category, we also added 3 new linking functions: CL2A, CL2D, and the argmin function of 2 arguments (represented as AMin2 in GeneXproTools). I didn't talk much about these functions, but they all perform very well on the Iris dataset, sub-problem Virginica/Not Virginica. But the main reason for their inclusion and not others (for example the functions CL2B and CL2C) was the fact that they have a neutral gene.

The C++ code for all these new linking functions is shown below:

double gepCL2A(double x, double y)
{
if (x > 0.0 && y > 0.0)
return 1.0;
else
return -1.0;
}

double gepCL2D(double x, double y)
{
if (x > 0.0 && y > 0.0)
return 1.0;
else
return 0.0;
}

double gepCL3A(double x, double y)
{
if (x > 0.0 && y < 0.0)
return 1.0;
else
if (x < 0.0 && y > 0.0)
return -1.0;
else
return 0.0;
}

double gepCL3B(double x, double y)
{
if (x >= 1.0 && y >= 1.0)
return 1.0;
else
if (x <= -1.0 && y <= -1.0)
return -1.0;
else
return 0.0;
}

double gepCL3C(double x, double y)
{
if (x > 0.0 && y > 0.0)
return 1.0;
else
if (x < 0.0 && y < 0.0)
return -1.0;
else
return 0.0;
}

double gepAMin2(double x, double y)
{
if (x < y)
return 0.0;
else
return 1.0;
}

These new linking functions were implemented in the modeling frameworks of Regression, Classification, and Logistic Regression and therefore can have different uses depending on the framework you are working on. In all cases, though, these new linking functions can be used to solve different kinds of classification problems, exploring the different modeling tools available in a particular framework, including different fitness functions, visualization tools and analytics. In the next post I'll talk more about the different kinds of classification models these new linking functions allow us to explore.

Author