One-Hot标签编码方法详解

文章目录

One-Hot 标签(One-Hot Encoding)

One-Hot 标签是一种将分类变量表示为二进制向量的编码方法,在机器学习和深度学习中广泛使用。

基本概念

One-Hot 编码将类别型特征转换为机器学习算法更容易处理的数值形式。对于一个有 N 个不同类别的特征:

  • 创建一个长度为 N 的二进制向量
  • 对于每个样本,只有对应类别的位设置为 1,其他所有位都为 0

示例

假设有一个颜色类别特征,包含三种可能值:红、绿、蓝

python 复制代码
原始标签: ["红", "绿", "蓝", "绿", "红"]

One-Hot 编码后:
红 → [1, 0, 0]
绿 → [0, 1, 0]
蓝 → [0, 0, 1]

完整转换:
[
 [1, 0, 0],
 [0, 1, 0],
 [0, 0, 1],
 [0, 1, 0],
 [1, 0, 0]
]

实现方式

在Python中可以使用以下方法实现One-Hot编码:

  1. 使用scikit-learn的OneHotEncoder:
python 复制代码
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder()
one_hot = encoder.fit_transform(data).toarray()
  1. 使用pandas的get_dummies:
python 复制代码
import pandas as pd
one_hot = pd.get_dummies(data)
  1. 使用Keras的to_categorical(适用于标签):
python 复制代码
from keras.utils import to_categorical
one_hot = to_categorical(labels)

应用场景

  • 分类任务的输出层(特别是多分类问题)
  • 处理非数值型分类特征
  • 需要明确类别间无顺序关系的场景

优缺点

优点

  • 不引入人为的类别间顺序关系
  • 适用于大多数机器学习算法
  • 直接可解释

缺点

  • 当类别数量很多时(高基数特征),会导致维度爆炸
  • 不适用于有序类别
  • 对于树模型可能不是最优选择

在深度学习中,One-Hot编码常用于输出层配合交叉熵损失函数使用。

相关推荐
白日做梦Q37 分钟前
Miniconda 新手保姆级教程:从安装到熟练使用(全程无跳步,避坑指南附全)
人工智能·深度学习·算法·机器学习
我没胡说八道41 分钟前
论文AI改写工具深度实测测评|避坑对比、优劣短板、场景适配全解析
人工智能·经验分享·深度学习·aigc·论文·wps
ForDreamMusk1 小时前
典型的卷积神经网络架构
深度学习·神经网络
东方佑1 小时前
生成即测度坍缩:深度学习生成模型必须构建连续波函数并从采样获取离散输出
人工智能·深度学习
阿_旭1 小时前
基于YOLO26深度学习的【咖啡果实成熟度检测与计数系统】【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·咖啡果实检测
AI人工智能+1 小时前
银行回单识别系统通过融合计算机视觉、深度学习和自然语言处理技术,实现了财务凭证的智能化处理
人工智能·深度学习·ocr·银行回单识别
Risk Actuary11 小时前
快速傅里叶变换与聚合风险精算模型
人工智能·深度学习·机器学习
没有梦想的咸鱼185-1037-166311 小时前
AI-Python机器学习、深度学习核心技术与前沿应用及OpenClaw、Hermes自动化编程
人工智能·python·深度学习·机器学习·chatgpt·数据挖掘·数据分析
m0_6346667312 小时前
OpenDeepThink:让大模型不再只沿着一条思路硬想
人工智能·深度学习·机器学习
Wilber的技术分享12 小时前
【大模型面试八股 3】大模型微调技术:LoRA、QLoRA等
人工智能·深度学习·面试·lora·peft·qlora·大模型微调