Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions on specific details of the GP algorithm #674

Closed
bartdp1 opened this issue Mar 14, 2018 · 10 comments
Closed

Questions on specific details of the GP algorithm #674

bartdp1 opened this issue Mar 14, 2018 · 10 comments
Labels

Comments

@bartdp1
Copy link
Contributor

bartdp1 commented Mar 14, 2018

Currently i am going to the literature on TPOT, and there are some unclarities in what i read w.r.t. what i find in the code. The main question i have here is a about the selection of individuals that proceed to the next generation. In the code i see that new population is selected from both the old population and the offspring. In the paper i found, if i understand correctly it is said that the selection is of the new population is done only from the offspring.

It would be really helpful if you could shed some light on these choices. Are these developments in the recent versions? Are there more major changes in the inner workings of TPOT w.r.t. what is written in the latest papers on TPOT? Thanks a lot in advance :) .

@weixuanfu
Copy link
Contributor

Yes, the selection way in the paper is included in TPOT version 0.3-0.6 but we changed it to the mu + lambda evolutionary algorithm in TPOT 0.7 which was documented in the release log

@bartdp1
Copy link
Contributor Author

bartdp1 commented Mar 14, 2018

Thanks! Will close this now. Might reopen if i have further questions

@bartdp1 bartdp1 closed this as completed Mar 14, 2018
@bartdp1
Copy link
Contributor Author

bartdp1 commented Mar 14, 2018

Sorry for reopening, but is there any literature on the effects of this change on the performance of TPOT yet available?

@bartdp1 bartdp1 reopened this Mar 14, 2018
@weixuanfu
Copy link
Contributor

weixuanfu commented Mar 14, 2018

Sorry, we don't any literature so far about the effects of this change in TPOT. But definitely, the mu + lambda algorithm is more advanced algorithm. @rhiever

@bartdp1
Copy link
Contributor Author

bartdp1 commented Mar 14, 2018

Thank @weixuanfu! :)

@bartdp1 bartdp1 closed this as completed Mar 14, 2018
@bartdp1
Copy link
Contributor Author

bartdp1 commented Mar 19, 2018

@weixuanfu going trough the crossover operator i see two things:

  • Two pipelines need a shares primitive in order to be eligible for crossover
  • Only one of the two resulting pipelines in a crossover is kept as offspring.
    Could you briefly shed some light on these choices?
    (PS: hope you don't mind that i abuse this issue a bit for some short questions, please let me know if you think this should be done otherwise :))

@bartdp1 bartdp1 reopened this Mar 19, 2018
@weixuanfu
Copy link
Contributor

Yes, that is exactly how crossover operator in GP algorithm in TPOT. We tweaked codes based on varOr in deap. varOr should only keep one child from a crossover since the percentage of offspring due to crossover should be equal to the probability of mating two individuals.

@bartdp1
Copy link
Contributor Author

bartdp1 commented Mar 19, 2018

Thanks, that explains the second point. Why should they have a primitive in common in order to be eligible for crossover?

@weixuanfu
Copy link
Contributor

weixuanfu commented Mar 19, 2018

We had a lot discussions about this. Please check the related issue #503 and PR #506.

@bartdp1
Copy link
Contributor Author

bartdp1 commented Mar 20, 2018

Thanks again @weixuanfu!

@bartdp1 bartdp1 closed this as completed Mar 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants