0

我在 Julia 中有一些用符号表示的分类数据,用于解决我想解决的几个不同问题,我认为这些数据非常适合 One-Hot 编码所需的形式。如何在 Flux.jl 中设置和表示这些数据?

4

1 回答 1

0

如果您不熟悉 One-Hot 编码的一般概念,值得花一些时间在这里阅读:https ://machinelearningmastery.com/why-one-hot-encode-data-in-machine-学习/一般要点是,如果您使用非数字数据(某些类别名称,如“cat”或“dog”而不是 0 或 1),您需要一种方法来获取现有编码(一些字符串可能是文本)并将其切换为机器学习模型可以理解的数值。

Flux 提供了一个内置的 One-Hot Encoding 功能,可以按如下方式使用:

julia> using Flux: onehot


julia> onehot(:b, [:a, :b, :c])
3-element Flux.OneHotVector{3,UInt32}:
 0
 1
 0

julia> onehot(:c, [:a, :b, :c])
3-element Flux.OneHotVector{3,UInt32}:
 0
 0
 1

在第一个例子中,我们假设如果我们得到数组:

3-element Flux.OneHotVector{3,UInt32}:
 0
 1
 0

它是符号的数字表示:b。后一个示例是相同的,但对于符号 的情况:c

于 2021-07-04T19:42:23.023 回答