发布于2019-10-05 18:09 阅读(1094) 评论(0) 点赞(16) 收藏(4)
我正在使用scikit-learn python模块来创建决策树,它的运行就像一个魅力。我想再做一件事。使树仅在属性上分裂一次。
其背后的原因是由于我的数据集非常奇怪。我使用嘈杂的数据集,我也对噪声非常感兴趣。我的全班成绩都是二元的,可以说[+,-]。我有一堆属性,其数字大多在(0,1)范围内。
scikit-learn创建树时,它将多次拆分属性,以使树“更好”。我知道,通过这种方式,叶节点变得更加纯净,但事实并非如此。
我所做的是通过计算不同截止值的信息增益并选择最大值来定义每个属性的截止值。通过这种“留一法”和“ 1 / 3-2 / 3”交叉验证技术,我得到了比原始树更好的结果。
问题是,当我尝试自动执行此操作时,我遇到了一个上下限问题,例如0和1左右,因为大多数元素都低于/高于该上限,并且我获得了很高的信息增益,导致其中之一集合是纯的,即使它仅包含全部数据的1-2%。
总而言之,我想做些什么使scikit-learn只在一个属性上拆分一次。
如果无法完成,你们对如何以一种很好的方式产生临界值有什么建议吗?
非常感谢!
我没有提供直接处理阻止分类器多次使用功能的方法。(尽管您可以通过定义自己的分离器并进行连接来完成此工作,但这是很多工作。)
我建议您首先确保平衡您的类,然后查看class_weight
参数以了解详细信息。那应该对您的问题有很大帮助。但是,如果那行不通,您仍然可以使用maxymoomin_weight_fraction_leaf
所建议的或类似参数来强制要求没有叶子的权重太小。
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/131063/a0b1b59164a5919e5f74/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!