Sklearn 机器学习 数值离散化 指定区间

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在优快云上与你们相遇~💖

在这里插入图片描述

本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】


在这里插入图片描述

🧠 Sklearn 机器学习实战:数值离散化(指定区间)详解

在机器学习的数据预处理中,我们经常需要将连续型数值变量离散化(又称分箱),尤其在特征工程阶段,这有助于提升模型的泛化能力或适配某些对离散特征更敏感的算法(如树模型、Naive Bayes)。

本篇博文将深入讲解如何使用 Sklearn 对数值进行 “指定区间”离散化,即我们自己定义好划分边界,而不是让机器自动等距或等频划分。


📚 一、为什么要进行数值离散化?

数值离散化是指将连续型变量转换为离散型(分段)变量。常见的应用场景包括:

  • 用于分类模型中,将连续值转为类别值
  • 提升模型的解释性(如“年龄在30-40之间”更具语义)
  • 处理异常值对模型影响
  • 与某些特定算法的特征类型要求匹配(如朴素贝叶斯)

🔧 二、Sklearn 中的离散化工具

Sklearn 提供了非常强大的 sklearn.preprocessing.KBinsDiscretizer 工具来进行离散化,支持:

策略名 描述
uniform 等宽分箱(自动)
quantile 等频分箱(自动)
kmeans 基于聚类的分箱(自动)
自定义边界 不是 KBinsDiscretizer 直接支持的,需要手动实现

🎯 三、手动指定区间进行离散化

✅ 示例场景:年龄分组

我们有一组连续的“年龄”数据,希望分成以下类别:

  • 0-18岁:青少年
  • 18-35岁:青年
  • 35-60岁:中年
  • 60岁以上:老年

📌 代码实现(使用 np.digitizepd.cut

方法一:使用 np.digitize(返回整数 bin 编号)
import numpy as np

# 模拟一组年龄数据
ages = np.array([
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomas Kant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值