sklearn处理离散变量的问题——以决策树为例

这篇具有很好参考价值的文章主要介绍了sklearn处理离散变量的问题——以决策树为例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近做项目遇到的数据集中,有许多高维类别特征。catboost是可以直接指定categorical_columns的【直接进行ordered TS编码】,但是XGboost和随机森林甚至决策树都没有这个接口。但是在学习决策树的时候(无论是ID3、C4.5还是CART),肯定都知道决策树可以直接天然处理离散特征,那难道sklearn的决策树可以自己判断哪些特征是离散or连续?
sklearn处理离散变量的问题——以决策树为例,sklearn,决策树,人工智能,boosting

决策树怎么处理连续特征

首先要明确,分类树和回归树,只是看label值是类别型还是连续型,和特征中是离散还是连续没有关系。并不是说CART回归树不能使用离散的特征,只是CART回归树里并不使用gini系数来计算增益。【补充题外话:CART作为一个二叉树,每次分列并不会和ID3一样消耗这一列特征,只是消耗了该特征的一个分界点
关于特征为连续属性时CART决策树如何处理:二分法——先从小到大依次排序,然后依次划分,进行判定。具体可以参考这篇博客。
sklearn处理离散变量的问题——以决策树为例,sklearn,决策树,人工智能,boosting

sklearn里的决策树怎么处理类别特征的

答案是——不处理。在sklearn实现的CART树中,是用同一种方式去处理离散与连续的特征的,即:把离散的特征也都当做连续的处理了,只能处理连续特征 和 做编码成数字的离散特征
sklearn处理离散变量的问题——以决策树为例,sklearn,决策树,人工智能,boosting
sklearn处理离散变量的问题——以决策树为例,sklearn,决策树,人工智能,boosting
可以看这个问题,我的理解是sklearn为了速度对CART的原来算法做了一定的改进,不再按照原来的方法处理离散特征,而是都统一成连续特征来处理了【所以没有categorical_columns接口】。
其实理论上来说,XGB是可以用离散变量的,毕竟增益只和结点上的样本有关,特征只是决定树的结构:
sklearn处理离散变量的问题——以决策树为例,sklearn,决策树,人工智能,boosting

解决方案

如果想使用DT、RF、XGB,离散特征需要人为进行处理。可以看这个博客,对类别特征进行编码。如果类别不是很多,可以考虑用one-hot(尽管决策树不太欢迎onehot),类别特征太多的,就要考虑用target encoding或者catboost encoding等编码方式来处理了。
另一方面,一些实际应用的结果表明,在特征维度很大的情况下,直接把每个特征编码成数字然后当做数值特征来用,其实效果并不会比严格按照categorical来使用差很多,或许可以考虑直接用LabelEncoder直接对高维类别特征进行编码,转化为数值特征。
或者考虑换LGBM、CatBoost文章来源地址https://www.toymoban.com/news/detail-721047.html

到了这里,关于sklearn处理离散变量的问题——以决策树为例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • sklearn机器学习库(一)sklearn中的决策树

    sklearn中决策树的类都在”tree“这个模块之下。 tree.DecisionTreeClassifier 分类树 tree.DecisionTreeRegressor 回归树 tree.export_graphviz 将生成的决策树导出为DOT格式,画图专用 tree.export_text 以文字形式输出树 tree.ExtraTreeClassifier 高随机版本的分类树 tree.ExtraTreeRegressor 高随机版本的回归树

    2024年02月13日
    浏览(48)
  • sklearn中使用决策树

    criterion可以是信息熵,entropy,可以是基尼系数gini 决策树生成的pdf  max_depth:这参数用来控制决策树的最大深度。以下示例,构建1~10深度的决策时,看哪个深度的决策树的精确率(score)高 结果: 数据来源: Titanic - Machine Learning from Disaster | Kaggle 读取数据  筛选特征 处理缺失

    2024年02月13日
    浏览(25)
  • 机器学习--sklearn(决策树)

    决策树(Decision Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。 节点 根节点:没有进边,有出边。包含最初的,针对特征的提问。 中间节点:既有进边也有出边,进

    2023年04月18日
    浏览(33)
  • sklearn-决策树

    目录 决策树算法关键 特征维度判别条件 决策树算法:选择决策条件 纯度的概念 信息增益 增益率: 基尼指数: 纯度度量方法 1) 纯度函数 2) 纯度度量函数 了解了“if-else”原理,下面我们进一步认识决策树算法。决策树算法涉及了几个重要的知识点:“决策树的分类方法”

    2024年02月12日
    浏览(33)
  • 数学建模——决策树(sklearn)

    红酒数据集分类 查看wine的内容 可以看到wine分为了0,1,2三类 这是wine的数据集,但是这样看并不直观,可以转化成表格的形式 0 1 2 3 4 5 6 7 8 9 10 11 12 0 0 14.23 1.71 2.43 15.6 127.0 2.80 3.06 0.28 2.29 5.64 1.04 3.92 1065.0 0 1 13.20 1.78 2.14 11.2 100.0 2.65 2.76 0.26 1.28 4.38 1.05 3.40 1050.0 0 2 13.16 2.36 2

    2024年02月12日
    浏览(17)
  • sklearn的系统学习——决策树分类器(含有python完整代码)

    目录 一、什么是决策树 二、怎么使用决策树解决分类问题 1、重要参数 (1)Criterion (2)random_state (3)splitter   (4)   剪枝参数 (5)目标权重参数 2、重要接口 3、重要属性 三、决策树的优缺点以及适用场景 四、代码 使用原因 :python可以实现算法,但是比较复杂,耗时耗

    2023年04月10日
    浏览(34)
  • 【python库学习】 sklearn中的决策树Decision Trees

    一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集.从根结点到每个叶结点的路径对应了一个判定测试序列. 划分准则

    2024年04月28日
    浏览(40)
  • 极简sklearn-使用决策树预测泰坦尼克号幸存者

    泰坦尼克号幸存者数据集是kaggle竞赛中入门级的数据集,今天我们就来用决策树来预测下哪些人会成为幸存者。 数据集下载地址: https://download.csdn.net/download/ting4937/87630361  数据集中包含两个csv文件,data为训练用数据,test为测试集。 首先我们通过pandas来读取并查看数据 数据如

    2024年02月04日
    浏览(79)
  • 【Sklearn】基于决策树算法的数据分类预测(Excel可直接替换数据)

    决策树是一种基于树状结构的分类和回归模型,它通过一系列的决策规则来将数据划分为不同的类别或预测值。决策树的模型原理和数学模型如下: 决策树的基本思想是从根节点开始,通过一系列的节点和分支,根据不同特征的取值将数据集划分成不同的子集,直到达到叶节

    2024年02月13日
    浏览(41)
  • 【Python从入门到人工智能】详解 PyTorch数据读取机制 DataLoader & Dataset(以人民币-RMB二分类实战 为例讲解,含完整源代码+问题解决)| 附:文心一言测试

      我想此后只要能以工作赚得生活费,不受意外的气,又有一点自己玩玩的余暇,就可以算是万分幸福了。                                                              ———《两地书》   🎯作者主页: 追光者♂🔥          🌸个人简介:

    2024年02月11日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包