You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flux.jl中配置并使用One-Hot Encoding(独热编码)

Flux.jl 符号类型分类型数据的One-Hot编码实现

依赖导入

Flux内置了完整的One-Hot编码工具,无需额外安装第三方包,直接导入即可使用:

using Flux

核心编码操作

你存储的符号类型数据可以直接传入Flux的编码函数,不需要提前转成数值类型,示例如下:
假设你的分类型样本为:
labels = [:cat, :dog, :bird, :cat, :bird, :dog]
所有去重后的类别集合为:
classes = unique(labels)

稀疏格式编码(推荐)

Flux默认输出的OneHotArray是稀疏存储结构,占用内存低,可直接传入模型参与运算,无需额外转换:

# 单个符号样本转One-Hot向量
single_onehot = Flux.onehot(:dog, classes)
# 批量符号数组转One-Hot矩阵
batch_onehot = Flux.onehotbatch(labels, classes)

密集格式编码

如果需要使用标准Julia数组格式的0-1矩阵,对编码结果调用Array转换即可:

dense_onehot = Array(batch_onehot)

配套反向转换操作

模型推理输出概率结果后,可以用Flux.onecold直接转回原始符号类型的分类结果:

# 示例:3分类模型输出的概率向量
model_output = [0.1, 0.8, 0.1]
predicted_label = Flux.onecold(model_output, classes)
# 输出结果为:dog

注意事项

  • 训练和推理阶段使用的classes集合顺序必须完全一致,否则会出现标签匹配错误
  • 若存在缺失值,可将缺失值单独设置为一个特殊符号类别(如:missing)后再做编码

内容的提问来源于stack exchange,提问作者logankilpatrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 02:12:03