EpistasisLab / tpot

A Python Automated Machine Learning tool that optimizes machine learning pipelines using genetic programming.
http://epistasislab.github.io/tpot/
GNU Lesser General Public License v3.0
9.68k stars 1.57k forks source link

Mate operator fix #1268

Closed perib closed 7 months ago

perib commented 2 years ago

What does this PR do?

_mate_operator has a wrapper that tries to check if all its returned values are valid pipelines. The last returned item is actually a dictionary and does not need to be evaluated. This led to the following error being thrown any time this function was called

_pre_test decorator: _mate_operator: num_test=0 'str' object has no attribute 'arity'.

I added a check in the decorator specific to _mate_operator to prevent this. Alternatively, We could also implement a generic check to skip anything that is not a pipeline/deap individual

RianKoja commented 8 months ago

Seems nice! I get this error a lot.