gpt4 book ai didi

enums - 以分类变量(枚举)作为输入的神经网络

转载 作者:行者123 更新时间:2023-12-04 03:08:07 26 4
gpt4 key购买 nike

我正在尝试使用神经网络解决一些机器学习问题,主要是使用 NEAT进化(增强拓扑的神经进化)。

我的一些输入变量是连续的,但其中一些是分类性质的,例如:

  • 物种:{狮子,豹,老虎,美洲虎}
  • 贸易分支:{医疗保健、保险、金融、IT、广告}

  • 起初,我想通过将类别映射到离散数字来对这样的变量进行建模,例如:

    {狮子:1,豹:2,老虎:3,捷豹:4}

    但恐怕这会在变量上添加某种任意拓扑。老虎不是狮子和豹子的总和。

    通常采用什么方法来解决这个问题?

    最佳答案

    不幸的是没有 解决方案,每个都会导致某种问题:

  • 正如您所提到的,您的解决方案是添加拓扑;它可能没有那么糟糕,因为 NN 可以拟合任意函数并表示“ifs”,但在许多情况下它会(因为 NN 经常陷入某些局部最小值)。
  • 您可以以 is_categorical_feature_i_equal_j 的形式对数据进行编码,这不会引起任何额外的拓扑,但会以指数方式增加特征的数量。因此,在“物种”的基础上,您会获得“is_lion”、“is_leopard”等特征,并且其中只有一个是相等的 1当时
  • 如果与可能的分类值相比有大量数据(例如,您有 10000 个数据点,而只有 10 个可能的分类值),您还可以将问题分成 10 个独立的问题,每个都针对一个特定值进行训练(因此我们有“狮子的神经网络”“美洲虎的神经网络”等)

  • 这两种第一种方法是针对“极端”情况的——一种在计算上非常便宜,但会导致高偏差,而第二种方法引入了很多复杂性,但不应影响分类过程本身。最后一个很少使用(由于假设分类值很少),但在机器学习方面却相当合理。

    关于enums - 以分类变量(枚举)作为输入的神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18825213/

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