sklearn的决策树能够处理字符串数据吗吗?

博主在使用sklearn决策树处理含标签类型数据时遇到报错问题,经搜索得知是其实现方式所致,可对数据进行编码处理。此外,还介绍了决策树的不同版本,如ID3、C4.5、CART、C5.0,指出sklearn使用的是CART,且ID3不能直接处理连续性数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

20201229 -

引言

我记得很久之前我曾经遇到过这种问题,一开始我还很纳闷,一般情况下,输入到分类器的数据应该都是数值型的,对于字符串型的他应该处理不了,但是当时我却得出了结论,sklearn中的决策树,能够帮助我讲这些数据处理。

但是,我感觉,可能是有一些记忆的偏差。
那么这里就来具体描述一下。

问题

问题来源于,最近处理一部分数据的时候,因为数据中含有标签类型的数据,但是直接输入到决策树模型中,sklearn中居然报错了,很费解,因为基于我之前的认知,决策树应该帮我把这部分编码好了,而且从决策树的原理上来说,这部分也的却是能做的。所以我也是很纳闷。

解决

在搜索了相关的内容之后,看了这个问答[1]明白了,这是因为sklearn中的实现方式导致的,一般针对这种数据的处理就是进行编码,不管是label编码,或者独热编码都行。
但是在这篇介绍编码的文章[2]中,提到很多内容,例如基于树的分类器可以不用独热编码,因为树本质上就是一种独热编码,这篇文章后续还要更细致理解。


关于不同版本的决策树

决策树是比较经典的分类算法,而其中分为了不同的版本,我们常用的包括:ID3、C4.5、CART这三种,当然还有C5.0,C5.0是并不是开源的。最开始的时候,我一直理解他们之间的区别仅仅是在选择分治节点的时候,不同的函数而已,当时没有具体进行研究,最近做实验的时候突然看到了这部分的不同,特此进行记录。
ID3 C4.5 CART决策树原理及sklearn实现
ID3、C4.5、C5.0、CART决策树区别
ID3、C4.5、CART三种决策树的区别
Decision Trees
在最后的sklearn文档中提到,sklearn使用的是CART,跟C4.5是非常相似的。
同时,在做实验的时候也提到了一个问题,ID3并不能直接处理连续性的数据,这部分在前面的几篇文章中都有体现。

参考

[1]strings as features in decision tree/random forest
[2]数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值