Special Topics:

Evolutionary Construction of Decision Trees

339.339 1KV Sprogar Block Begin: 16.10.2013

Decision trees are transparent, understandable and efficient classifiers. Most well known algorithms for their induction are based on a greedy divide-and-conquer strategy. This course will explore an alternative approach to their construction, namely evolutionary computation.

The evolutionary approach has benefits and drawbacks. The course will address both and suggest evasive actions for problematic points in evolutionary DT induction. Evolutionary principles can well be applied to other problems, too.

Lecturer

Dr. Matej Sprogar
University of Maribor, Slovenia
matej.sprogar@uni-mb.si

Dates

Date Time Room
We 16.10.2013 15:30 - 18:00 S2 219
Th 17.10.2013 15:30 - 18:00 KG 519
Fr 18.10.2013 13:45 - 16:15 S3 055

Contents

  1. Introduction
  2. Decision Tree taxonomy
  3. Classification Trees
  4. Regression Trees (Regression Trees, Model Trees)
  5. Classic DT Tools
  6. Evolutionary Computing
  7. Genetic Algorithms
  8. Genetic Programming
  9. DT encoding
  10. DT fitness
  11. EC problems
  12. DT evolution problems
  13. Data preparation
  14. Understanding Results
  15. Summary

Exam

Students will have to do a project and send it to the lecturer. The marks for this course will be based on the project.

Topics for student projects:

  • EC crossover study: Implement the most typical EC crossover operators, together with theoretical and practical analysis of results
  • EC fitness functions study: Implement the most typical EC fitness functions, together with theoretical and practical analysis of results
  • EC mutations study: Implement the most typical EC mutation operators, together with theoretical and practical analysis of results
  • *EC engine for DT induction: Implement any EC for DT induction and apply it on a dataset of choice (UCI, ...)
  • **EC engine implementation +: Implement a generic EC engine in a language of choice, that is able to run either GA or GP and apply it on a chosen problem
  • **Self-adapting DT evolution: Implement a DT engine, which is able to self-adapt its parameters, and apply it on a chosen problem
  • **DT co-evolution: Implement a co-evolutionary DT engine, which evolves two competing populations, and apply it on a chosen problem
  • ...

Programming languages: C++ | Java | C# | ...
Libraries: OpenBeagle, GAlib, EC++ | Watchmaker | ...

Literature