mirror of
https://github.com/dkam/decisiontree.git
synced 2025-12-28 07:04:53 +00:00
update readme
This commit is contained in:
@@ -1,24 +1,26 @@
|
||||
= Decision Tree
|
||||
# Decision Tree
|
||||
|
||||
A ruby library which implements ID3 (information gain) algorithm for decision tree learning. Currently, continuous and discrete datasets can be learned.
|
||||
|
||||
- Discrete model assumes unique labels & can be graphed and converted into a png for visual analysis
|
||||
- Continuous looks at all possible values for a variable and iteratively chooses the best threshold between all possible assignments. This results in a binary tree which is partitioned by the threshold at every step. (e.g. temperate > 20C)
|
||||
|
||||
== Features
|
||||
## Features
|
||||
- ID3 algorithms for continuous and discrete cases, with support for incosistent datasets.
|
||||
- Graphviz component to visualize the learned tree (http://rockit.sourceforge.net/subprojects/graphr/)
|
||||
- Support for multiple, and symbolic outputs and graphing of continuos trees.
|
||||
- Returns default value when no branches are suitable for input
|
||||
|
||||
== Implementation
|
||||
## Implementation
|
||||
|
||||
- Ruleset is a class that trains an ID3Tree with 2/3 of the training data, converts it into a set of rules and prunes the rules with the remaining 1/3 of the training data (in a C4.5 way).
|
||||
- Bagging is a bagging-based trainer (quite obvious), which trains 10 Ruleset trainers and when predicting chooses the best output based on voting.
|
||||
|
||||
Blog post with explanation & examples: http://www.igvita.com/2007/04/16/decision-tree-learning-in-ruby/
|
||||
|
||||
== Example
|
||||
## Example
|
||||
|
||||
```ruby
|
||||
require 'decisiontree'
|
||||
|
||||
attributes = ['Temperature']
|
||||
@@ -35,9 +37,12 @@ Blog post with explanation & examples: http://www.igvita.com/2007/04/16/decision
|
||||
dec_tree = DecisionTree::ID3Tree.new(attributes, training, 'sick', :continuous)
|
||||
dec_tree.train
|
||||
|
||||
test = [37, 'sick']
|
||||
|
||||
decision = dec_tree.predict(test)
|
||||
decision = dec_tree.predict([37, 'sick'])
|
||||
puts "Predicted: #{decision} ... True decision: #{test.last}";
|
||||
|
||||
=> Predicted: sick ... True decision: sick
|
||||
# => Predicted: sick ... True decision: sick
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
The MIT License - Copyright (c) 2006 Ilya Grigorik
|
||||
Reference in New Issue
Block a user