sklearn DecisionTreeClassifier具有一个名为“splitter”的属性,默认情况下它设置为“best”,将它设置为“best”或“random”是做什么的?我无法从官方文档中找到足够的信息。sklearn的DecisionTreeClassifier中的“splitter”属性是做什么的?
1
A
回答
1
如果您选择/保持“最佳”,随机树会分割最相关的功能。
如果选择“随机”,树要采取随机功能,并把它分解。因此,您的树可能会以更深或更低的精度结束。
你可以做一些试验,并生成一个graphviz看出区别。例如,在下面的图片上,分割X 1,然后X [0]。但是,如果你反其道而行,你最终可能会由拆分通过X [0],则X 1,并再次精确X [0]
编辑:作为例子,你可以考虑高度/人的体重。
让我们考虑人口高度的这样的平均水平1m70,女性通常1m65和男人1m75。两种重新分配都是重叠的。 对于体重来说,它更分离,女性在65公斤左右,而男性85公斤(曲线从不重叠)。
如果您随机分割,则可以从特征高度开始。这意味着你将在高度> 1m70处分裂。你最终会得到两个包含男性和女性的团体。所以你必须按重量分割,说出它是男人还是女人。
如果您使用最好,您可以直接根据体重进行分类。
编辑2:如果你有一个特点百分之一集,“最好”也将采取最相关的功能。想象一下,你仍然想分类男人和女人,你也有在你的数据集的眼睛的颜色,瞳孔的大小等......这些都不相关,使用随机可能会首先选择他们。
对我来说,这个选项使得只有当你知道你所有的功能都与周围相同的实力相关者的意义,如果你想节省一些计算时间(寻找最好的分裂可能会发生在某些情况下,时间)
我希望它能帮助,
1
“随机”设定随机选择一个功能,然后将其分解为随机和计算基尼系数。它重复了很多次,比较所有的分割,然后采取最好的分割。
这有几个优点:
- 它的计算小于在每片叶子计算每个功能的最佳分散密集。
- 它应该不太容易过度配合。
- 如果您的决策树是集成方法的一个组件,则额外的随机性很有用。
相关问题
- 1. `sample_weight`对``DecisionTreeClassifier`在sklearn中的工作方式做了什么?
- 2. 为什么决策树结构只是sklearn DecisionTreeClassifier的二叉树?
- 3. Mono.GetOptions.OptionAttribute的MaxOccurs属性是做什么的?
- 4. 在sklearn中决定DecisionTreeClassifier的max_depth
- 5. ASP.net AutoEventWireup属性是做什么的?
- 6. NHibernate.Search ContainedIn属性是做什么的?
- 7. 'sort'属性是做什么的?
- 8. html'typeof'属性是做什么的?
- 9. html bindpoint属性是做什么的?
- 10. android:name属性是做什么的?
- 11. CoreData属性的索引属性是做什么的?
- 12. 属性(属性默认值)是做什么的?
- 13. XSD中元素的ref属性是做什么的?
- 14. .classpath中的导出属性是做什么的?
- 15. NHibernate中的反向属性和只读属性在做什么?
- 16. 这是什么xmlns属性做
- 17. y,_赋值在python/sklearn中做什么?
- 18. uitableviewcell的属性是什么?
- 19. 命名属性是对象的最佳做法是什么?
- 20. sklearn DecisionTreeClassifier更深度精度更低?
- 21. sklearn中的属性错误svm.SVC
- 22. LoginPageLink中的'Type'属性值是什么?
- 23. xml中的'base'属性是什么?
- 24. 什么是C#中的属性
- 25. 什么是rails中的“嵌套属性”?
- 26. Groovy中的“属性”是什么?
- 27. 什么是HTML中的枚举属性?
- 28. java中属性的含义是什么?
- 29. C#中属性的用途是什么?
- 30. XML属性中的问号是什么?
所以,如果让我选择“随机”,基尼杂质或信息增益将不被计算出来的?因为计算它们并使用“随机”没有任何意义,对吗? –
我想它会在以后计算,但不用于选择最佳功能。 –
这么好的解释....谢谢! –