决策树C++实现

算法实现

本项目使用ID3和C4.5两种算法来生成决策树,并结合李航的《统计学习方法》中的决策树剪枝算法对生成的树进行优化。进一步优化还采用了随机森林算法,通过集成学习提升决策树的预测能力。

文件结构

├── LICENSE

├── README.MD

├── data

│ └── dataset.txt

├── data description

│ └── data description.txt

├── result_histogram.plt

├── run.sh

├── src

│ ├── ID3AndC45RandomForest.cpp

│ ├── ID3WithoutAndWithPruning.cpp

│ ├── calResult.cpp

│ ├── decisionMakingTree.h

主要实现代码

  • ID3AndC45RandomForest.cpp:实现了ID3、C4.5算法,并使用随机森林对决策树进行了集成优化。

  • ID3WithoutAndWithPruning.cpp:展示了决策树在无剪枝和有剪枝条件下的生成对比。

  • calResult.cpp:负责计算和显示生成的决策树的准确性及效果。

  • decisionMakingTree.h:包含核心决策树结构的定义及实现。