我正在编写一个决策树,用ID3算法从头开始训练。我希望能够对连续数据进行训练和分类,因此我实现了k均值聚类,并缩小了任何输入训练或预测数据的值范围。
但是,我遇到了这样的问题:在训练过程中没有遇到的属性值,在树的某个深节点中遇到,但在更高的位置上存在。具有此特定属性值的所有数据点都可能最终出现在树的不同分支上。
因此,为了‘解决’这个问题,每当遇到节点的未知属性值时,我就将其发送到一个随机存在的分支中。
我得到95.45%的准确性使用随机分割85%-15%的训练-测试数据与虹膜.
这是一个可以接受的方法,还是我在这里出了什么问题?
下面是代码:https://github.com/jamalmoir/ml_组件/blob/主/毫升_组成部分/模型/决定_tree.py
谢谢
发布于 2017-02-23 03:05:48
您的叶节点是否返回概率分布,而不是单个类值,例如到达节点的大多数训练实例?如果是这样的话,一个更好的方法是将测试实例发送到每个子路径,并平均树叶返回的概率分布。
你在虹膜数据上的好分数95.45%告诉我,在这个例子中,这不是一个非常重要的细节。尝试一些更具挑战性的数据集,看看它是否起作用。
https://datascience.stackexchange.com/questions/17119
复制相似问题