pharo-ai / decision-tree-model Goto Github PK
View Code? Open in Web Editor NEWModel for Decision Trees Learning in Pharo
License: MIT License
Model for Decision Trees Learning in Pharo
License: MIT License
I'll check to fix it
I believe that DecisionTree can be used not only for machine learning, but also for many other applications (for example, to contain expert knowledge). So it would be nice to have it as a standalone project that lives in a separate repository.
Then there is DecisionTreeModel - a machine learning model that is used for building decision trees. This should be a separate repository can contains an abstract class DecisionTreeModel and several algorithms implemented as subclasses:
DecisionTreeModel repository should depend on DecisionTree repository.
Finally, I don't remember well how RandomForest works, but if it is the ensembling algorithm that averages the output of several DecisionTreeModels, then you can put it into a separate repository and add a dependency on DecisionTreeModel.
However, if it is the kind of DecisionTreeModel that generates random decision trees and averages their outputs, then I would make it a subclass of the abstract DecisionTreeModel and keep it in the same repository.
This way we can have a clean separation and each module can be used independently.
We have replaced them with trueChild and falseChild, but those methods are still in the repository. They should be removed
This would allow us to ask that object to explain how the decision was made.
Example:
tennisTree := DtmDecisionTree withCondition: [ weather | weather isRaining ].
tennisTree trueChild: (DtmDecisionTreeLeaf withLabel: 'stay home').
tennisTree falseChild: (DtmDecisionTree withCondition: [ :weather |
(weather temperature < 0) or: (weather temperature > 30) ].
tennisTree falseChild trueChild: (DtmDecisionTreeLeaf withLabel: 'stay home').
tennisThee falseChild falseChild: (DtmDecisionTreeLeaf withLabel: 'play tennis').
weather := Weather new
raining: false;
temperature: 42;
yourself.
decision := tennisTree classify: weather.
decision label. "stay home"
But now we can also explain the decision:
decision why.
"
{
[ :weather | (weather temperature < 0) or: (weather temperature > 30) ] -> true .
[ weather | weather isRaining ] -> false
}
"
If you look at the baseline, it depends of dataFrame and Datasets. We should delete those dependencies
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.