Sklearn 机器学习 分类列编码 预估目标列编码

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

在这里插入图片描述

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


在这里插入图片描述

Sklearn 机器学习:分类列编码与目标列编码实战指南

在机器学习建模中,分类变量(Categorical Features)和目标列(Target)往往以字符串形式存在,这在训练模型前必须进行编码处理。本文将详细讲解如何使用 Scikit-learn 中的编码工具对这两类变量进行编码,包括:

  • 特征编码(OneHotEncoder, OrdinalEncoder)
  • 目标列编码(LabelEncoder)
  • 混合特征批量编码(ColumnTransformer)
  • 编码后的逆变换操作
  • 工具差异与使用场景建议

🎯 一、为什么需要编码?

机器学习模型(尤其是基于数值计算的模型如 SVM、线性回归、神经网络等)无法直接处理字符串类型的变量。如果不编码,模型根本无法理解 'red''blue''yes''no' 这些值的含义。

编码的目标:

  • 将分类数据转换为模型可接受的数值;
  • 避免引入顺序性误导;
  • 与模型结构匹配,提升预测效果。

🧩 二、常见分类特征编码方式

2.1 使用 OrdinalEncoder 进行整数编码

from sklearn.preprocessing import OrdinalEncoder
import pandas as pd

df = pd.DataFrame({
   
   
    'color': ['red', 'blue', 'green', 'blue', 'red']
})

encoder = OrdinalEncoder()
encoded = encoder.fit_transform(df[['color']])
df['color_encoded'] = encoded
print(df)

输出示例:

color color_encoded
red 2.0
blue 0.0
green 1.0
blue 0.0
red 2.0

📝 适用场景: 适合处理有顺序的分类特征(如“低、中、高”);
🛑 注意: 如果用于无序变量(如颜色),可能引入错误的顺序性假设。


2.2 使用 OneHotEncoder 进行独热编码

from sklearn.preprocessing import OneHotEncoder

encoder = OneHotEncoder(sparse
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Thomas Kant

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

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

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

打赏作者

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

抵扣说明:

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

余额充值