我正在编写一个用 ID3 算法从头开始训练的决策树。我希望能够对连续数据进行训练和分类,因此我实施了 k-means 聚类并缩小了任何输入训练或预测数据的值范围。
但是,我遇到了一个问题,即在训练过程中没有遇到的属性值,在树的某个深节点中,但在更远的地方存在。具有此特定属性值的所有数据点可能最终都位于树的不同分支上。
所以为了“解决”这个问题,每当遇到一个节点的未知属性值时,我都会将它发送到一个随机的现有分支。
使用 iris 随机拆分 85%-15% 的训练测试数据,我得到了 95.45% 的准确率。
这是一种可以接受的方法还是我在这里做错了什么?
这是代码:https ://github.com/jamalmoir/ml_components/blob/master/ml_components/models/decision_tree.py
谢谢