Machine Learning Algorithm ID3 of Decision Tree( java )
不像python中有一个功能比较强大的字典,所以这里自定义了一个决策树的数据结构(类DecisionTree),两个域:
String
:用来表示该树(子树)的属性(feature)。HashMap<String, Object>
: key的值表示feature的取值,Object是子树(DecisionTree)或者是最终的label。 典型的一个递归的定义。并且在该类中提供了:- 遍历树的方法。
- 将构造的树输出到指定的文件中。
ID3算法实现
用于读取训练集等数据。
利用决策树算法来决定要不要出去踢球。
利用决策树算法来决定适合什么类型的隐形眼镜
计算决策树算法在手写字数据MNISI上的表现
对数据集MNIST的预处理
MNIST.c:从网络上下载的原始数据 42000 数据的格式为 label+feature
MNISTDecisionTree.c:将MNIST.c处理为feature+label
MNIST01DecisionTree.c:将MNISTDecisionTree.c进行二值处理,非0的数据都设置为1
minMNISTDecisionTree.c:MNISTDecisionTree.c的十分之一
minisoPorbe.data:minMNISTDecisionTree.c产生的训练集合
minisoTraining.data:minMNISTDecisionTree.c产生的测试集合
MNISTtree.data:MNIST数据产生的决策树的构造规则