您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

sklearn DecisionTreeClassifier可以真正使用分类数据吗?

sklearn DecisionTreeClassifier可以真正使用分类数据吗?

好吧,我很惊讶,但事实证明,sklearn的决策树确实无法处理分类数据。从2015年6月开始,这个问题(#4899)出现了Github问题,但是它仍然是开放的(我建议您快速浏览一下该线程,因为有些评论非常有趣)。

正如您在此处所做的那样,将分类变量编码为整数的问题在于,它对它们强加了一个 顺序 ,根据情况的不同,该 顺序 可能有意义,也可能没有意义。例如,你可以编码['low', 'medium', 'high'][0, 1, 2],因为'low' < 'medium' < 'high'(我们称这些分类变量 序数 ),但你仍然隐含作出额外的(也可能是不希望的)假设之间的距离'low''medium'与之间的距离相同'medium',并'high'(在没有影响决策树,但很重要,例如在k- nn和聚类中)。但是这种方法在诸如['red','green','blue']或的情况下完全失败了['male','female'],因为我们不能要求它们之间有任何有意义的相对顺序。

因此,对于非常规分类变量,正确编码它们以供sklearn决策树使用的方法是使用OneHotEncoder模块。用户指南的“编码分类功能”部分也可能会有所帮助。

其他 2022/1/1 18:27:39 有529人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶