Could someone give me some advice on the evoknn.py, please?

87 views
Skip to first unread message

Nicolas

unread,
Apr 3, 2014, 8:32:02 AM4/3/14
to deap-...@googlegroups.com
Hi, 

Thank you very much for developing this great package about evolutionary algorithms.

Recently, I have submitted a journal paper, and one of the reviewers suggests me to do some comparison experiments. In the suggested paper he/she provided, the authors use the NSGA-II algorithm to optimize his proposed novel two-objective function. And in the paper, the author have indicated that he had modified the original NSGA-II algorithm. To avoid solutions with multiple selections of the same feature, the author have changed the random initialization of the chromosome population and also modified the crossover and mutation operators.

In my opinion, the author may initialize the population in some kind of deterministic way. In original NSGA-II algorithm, the initialization, the crossover and the mutation almost all are randomized. I think the author
have recorded the optimal subset, and just randomize the remain chromosomes, so the have-selected features can't be selected again. I don't know if I had the correct understanding.

I have just learned about multi-objective evolutionary algorithms for a few days, and much have confused me. 
Could someone who are familiar with the NSGA-II give me some advice on how to modify the standard NSGA-II algorithm to fit the author's method?
I'm also very appreciated that one can provide some references or links.





Félix-Antoine Fortin

unread,
Apr 8, 2014, 10:40:54 AM4/8/14
to deap-...@googlegroups.com
Hi,

Following your question on StackOverflow, I gave a quick look at the paper
"A Novel Approach to the Selection of Spatially Invariant Features for the Classification of Hyperspectral Images With Improved Generalization Capability".

Unfortunately, there is not much you can do with the description of the algorithm they provide. Basically, they are saying they modified the initialization, the crossover and the mutation, without specifying anything about those modifications. I would recommend you to contact the authors and ask the specifics of their operators.

Once you find out what those changes were, implementing in them in DEAP will be easy. You will only have to implement a new crossover and mutation operator, and register these in the toolbox instead of their classical counterpart. See the tutorial on Operators and Algorithms : http://deap.gel.ulaval.ca/doc/default/tutorials/basic/part2.html

Regarding initialization, you should read the first tutorial on Creating Types

Regards,
Félix-Antoine

--
You received this message because you are subscribed to the Google Groups "deap-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to deap-users+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Nicolas

unread,
Apr 8, 2014, 11:05:55 PM4/8/14
to deap-...@googlegroups.com

Hi, Mr. Félix-Antoine Fortin,

Thank you very much for replying me.

These days, I have read some references:
http://www.mathworks.com/matlabcentral/fileexchange/10429-nsga-ii-a-multi-objective-optimization-algorithm/content/SGA-II.zip
and the references in these packages.

And with the evoknn.py in DEAP, I have some understanding of feature selection based on evolutionary algorithms. They encode the features by binary chromosome, 1 means selecting the feature, 0 means
not. Then, by the fitness value in evolutionary algorithms, new combination will be generated, then evaluate the new selected features. In NSGA-II, the optimal selection may be in the Pareto front.

As you said, DEAP has provided easy-use interfaces to create our own evolutionary algorithms. Thank you very much for providing the examples and guiding me how to develop new applications. 
But in my circumstance, I'm not familiar with evolutionary algorithms and couldn't understand some terminology, such as the `mu, lambda, mu+lambda and ask-and-tell`. I think I should spend more time on learning
about them. So, for me,  I think there is a long way  to go.

Thanks again! I'll request the authors for help and try to get the right answer.

Best Regards!
Nicolas



在 2014年4月8日星期二UTC+8下午10时40分54秒,Félix-Antoine Fortin写道:
Reply all
Reply to author
Forward
0 new messages