gpt4 book ai didi

Java - 规范化和非规范化神经网络中的标称属性

转载 作者:行者123 更新时间:2023-11-30 09:25:15 24 4
gpt4 key购买 nike

您好,我正在构建一个使用反向传播训练的简单多层网络。我目前的问题是我的数据集中的某些属性是名义上的(非数字),我必须对它们进行归一化。我想知道最好的方法是什么。我正在考虑计算每个属性有多少个不同的值,并为每个属性分配一个介于 0 和 1 之间的相等数字。例如,假设我的一个属性具有值 A 到 E 那么以下是否合适?:

A = 0
B = 0.25
C = 0.5
D = 0.75
E = 1

我的问题的第二部分是对输出进行反规范化以使其恢复到标称值。我会先对数据集中每个不同的输出属性值执行与上述相同的操作以获得数字表示吗?另外,在我从网络获得输出后,我是否只看到它更接近哪个数字?例如,如果我得到 0.435 作为输出并且我的输出属性值是这样分配的:

x = 0
y = 0.5
z = 1

我是否只找到最接近输出值 (0.435) 的 y (0.5)?

最佳答案

只有当变量是有序非名义 时,您才能按照您的建议进行操作,即便如此,这也是一个有点武断的决定。在我提出解决方案之前,请注意术语:

名义变量与顺序变量

假设AB等代表颜色。这些是标称变量的值,不能以有意义的方式排序。你不能说红色大于黄色。因此,您不应将数字分配给名义变量。

现在假设 ABC 等代表服装尺码,例如smallmediumlarge 等。即使我们没有在绝对尺度上测量这些尺寸(即我们不说 small对应胸围40),很明显small <medium <large。考虑到这一点,设置 small=1medium=2large=3 还是 仍然有些随意small=2, medium=4, large=8.

One-of-N 编码解决此问题的更好方法是使用所谓的 one-out-of-N 编码。如果您有 5 个不同的值,则需要五个输入单元,每个输入单元可以取值 10。继续我的服装示例,尺寸 extra small 可以编码为 10000small 编码为 01000,medium 编码为 00100

类似的原则适用于网络的输出。如果我们将服装尺寸视为输出而不是输入,当网络输出 vector [0.01 -0.01 0.5 0.0001 -.0002] 时,您将其解释为尺寸 medium

回复您对@Daan 帖子的评论:如果您有 5 个输入,其中一个输入有 20 个可能的离散值,您将需要 24 个输入节点。您可能希望将 4 个连续输入的值归一化到 [0, 1] 范围内,因为它们最终可能会支配您的离散变量。

关于Java - 规范化和非规范化神经网络中的标称属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15408487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com