https://github.com/ivangrigorov/decision-tree-alg
Creating a decision tree platform for different types of data. No pruning is available yet.
https://github.com/ivangrigorov/decision-tree-alg
artificial-intelligence csharp decision-trees machine-learning machine-learning-algorithms
Last synced: about 1 year ago
JSON representation
Creating a decision tree platform for different types of data. No pruning is available yet.
- Host: GitHub
- URL: https://github.com/ivangrigorov/decision-tree-alg
- Owner: IvanGrigorov
- Created: 2017-04-10T21:05:22.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-12-02T14:09:37.000Z (over 8 years ago)
- Last Synced: 2025-03-31T02:51:12.479Z (over 1 year ago)
- Topics: artificial-intelligence, csharp, decision-trees, machine-learning, machine-learning-algorithms
- Language: C#
- Homepage:
- Size: 8.49 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Decision-Tree-ALg
Creating a decision tree platform for different types of data. Currently only Boolean(Yes/No) problems are solvable. No pruning is available yet.
[](https://github.com/IvanGrigorov/Decision-Tree-ALg.git)
[](https://ci.appveyor.com/project/IvanGrigorov/decision-tree-alg/branch/master)
## Latest Build Statuses (Branches):
### UnitTesting

[](https://github.com/IvanGrigorov/Decision-Tree-ALg/tree/UnitTesting)
### ConsoleInteraction (Experimental)

This project is created to help others with their work. If you like the idea and the project I will be glad for some recommendations like stars, in order more people to see it. You can also fork it and customize your own version of the product.
# DECISION TREE ALG PLATFORM
## Summary
--------------
The goal of the project is to create autonomously decision tree platform, in order to be used in different scenarios. The idea behind the algorithm is based on the machine learning approach for classifying different examples.
More info about the apprach you can find here: https://en.wikipedia.org/wiki/Decision_tree_learning
(more specificly ID3).
## How to use:
-----------------
### UnitTesting
There is one config file, which is important for adjusting the algorithm with the situtaion. It is important to know that the names of the Features(Attributes) must be well chosen. Then there is a thing to be done - to add a class similar to DataEntity, which has to implement IDataEntity and its properties must match the names of the features in the configuration. The length of feature sets must also be set, alongside the name of the new class. The result of the program will be saved as a txt file in the Results folder with name, corresponding current DateTime.
See the [Wiki](https://github.com/IvanGrigorov/Decision-Tree-ALg/wiki) for more information about the configuration.
### ConsoleInteraction (Experimental)
This is new version of product where there is no need to make any changes into the code, but the autonomous work remains. There is new "dll" library to use the console interaction, but can be easily be adjusted to use commands from other "API" - s.
This requires no additional configuration. All of the work is done with the help of the console interface, which has some available commands:
| Command | Description |
| ------- | ----------- |
| exit | This exits the application |
| help | This shows all the possible commands and their description |
| load examples \ | loads the examples for training |
| generate to \ | generates the tree |
| minify | sets the tree to minified version |
| maxify | sets the tree to maxified version |
| load test examples \ | load examples for testing |
| test | tests the algorithm and returns the accuracy percentage |
| generate config \ | Generates new configuration for the node structure |
The exmples file must have the following syntax:
-----------------------------------------------------
RainTypeClassificated,TempClassificated,HumidClassificated,WindClassificated,ClassifiedResult\
Low,Hot,High,Weak,No\
Low,Hot,High,Strong,No\
Normal,Hot,High,Weak,Yes\
High,Mild,High,Weak,Yes\
High,Cool,Normal,Weak,Yes\
High,Cool,Normal,Strong,No\
Normal,Cool,Normal,Strong,Yes\
Low,Mild,High,Weak,No\
Low,Cool,Normal,Weak,Yes\
High,Mild,Normal,Weak,Yes\
Low,Mild,Normal,Strong,Yes\
Normal,Mild,High,Strong,Yes\
Normal,Hot,Normal,Weak,Yes\
High,Mild,High,Strong,No
---------------------------------------------------------------
Here we see that we must specify the name of features on the first row and seperated with commas.
The config file must look like this:
---------------------------------------------------------------
RainTypeClassificated,Low,Normal,High\
TempClassificated,Hot,Mild,Cool\
HumidClassificated,High,Normal,Low\
WindClassificated,Weak,Strong\
ClassifiedResult,No,Yes
---------------------------------------------------------------
Again we see the same structure. **Remember to say the classificaion types and possible values in the end**
Here is a small demo of the console intreface:

## Now Developing
-----------------
Most of the work is concentrated on the interface for now. However you can allways make in issue about any part of the project, but of course you must specify the description of it.
## More Information:
-----------------------
For more information, questions and ideas, you can contact with me: ivangrigorov9@gmail.com