【问题标题】:Normalize a feature in this table规范化此表中的特征
【发布时间】:2015-08-24 15:49:45
【问题描述】:

这已成为一个令人沮丧的问题,但我在 Coursera 的讨论中提出过,但他们无济于事。下面是问题:

我现在已经弄错了 6 次。如何规范化特征?提示就是我所要求的。

我假设 x_2^(2) 是值 5184,除非我添加 1 的 x_0 列,他们没有提到,但他在讲座中谈到创建设计矩阵 X 时肯定提到。在这种情况下 x_2^(2) 将是值 72。假设其中一个是正确的(我正在玩猜谜游戏),我应该使用什么来标准化它?他在讲座中谈到了 3 种不同的标准化方法:一种使用最大值,另一种使用最大值和最小值之间的范围/差异,另一种是标准偏差——他们想要一个正确的答案百分之一。我该用哪一个?这太令人困惑了。

【问题讨论】:

  • 我被困在同一个问题上。任何答案对你有用吗?
  • 对于像我这样似乎数字正确但仍然未能解决这个问题的人:就我而言,我忘了按要求四舍五入。我的问题针对第 4 个特征随机化,我的计算结果是 -0.469,应该四舍五入到 -0.47,然后我发布了 -0.46。哇!
  • 这是作弊兄弟!!

标签: machine-learning normalization


【解决方案1】:

我现在正在学习这门课程,我第一次回答这个问题时犯的一个非常微不足道的错误是在答案中使用逗号而不是点,因为我是手工完成的,在我的国家,我们使用逗号来表示小数.例如:(0,52 而不是 0.52)

所以在第二次尝试时,我使用了 dot 并且工作正常。

【讨论】:

    【解决方案2】:

    对于相同的训练集,我得到的问题是 Q. 什么是归一化特征 x^(3)_1?

    因此,上表中的第 3 次训练前和第 1 次特征达到 94。 现在,规范化形式是

    x = (x - mean(x's)) / range(x)
    

    值是:

    x = 94
    mean(89+72+94+69) / 4 = 81
    range = 94 - 69 = 25
    
    Normalized x = (94 - 81) / 25 = 0.52
    

    【讨论】:

      【解决方案3】:

      它要求使用特征缩放和均值归一化对第二列下的第二个特征进行归一化。因此,

      (5184 - 6675.5) / 4075 = -0.366

      【讨论】:

      • (5184 - 6675.5) / 4075 = -0.366
      【解决方案4】:

      我遇到了同样的问题,在我的情况下,我使用的平均值是最大 x2 值 (8836) 减去最小 x2 值 (4761) 除以 2,而不是每个 x2 值的总和除以示例数。

      【讨论】:

        【解决方案5】:

        ...同时使用特征缩放(除以 "max-min" 或范围,一个特征)和 均值归一化。

        所以对于任何单个特征 f:

        f_norm = (f - f_mean) / (f_max - f_min)
        

        例如x2,(期中考试)^2 = {7921, 5184, 8836, 4761}

        > x2 <- c(7921, 5184, 8836, 4761)
        > mean(x2)
         6676
        > max(x2) - min(x2)
         4075
        > (x2 - mean(x2)) / (max(x2) - min(x2))
         0.306  -0.366  0.530 -0.470
        

        因此 norm(5184) = 0.366

        (使用R语言,非常擅长对这样的表达式进行向量化)

        我同意他们使用符号 x2 (2) 表示 x2 (norm)x2'


        编辑:实际上每个人都调用内置的scale(...) 函数,它做同样的事情。

        【讨论】:

        • 感谢您的回答。但我注意到最后一行代码应该是 (x2-mean(x2)) / (max(x2) - min(x2))
        • @FangCao:Doh!我到底是怎么逆转的!?
        • 不应该是-.366吗?
        • 附带说明,常用的替代方法是除以标准差而不是 (f_max - f_min)。
        • @AnnaVopureta:是的,“缩放”可以表示除以最小-最大范围或 s.d。前者的优点是结果有界到 [0,1] 或 [-1,1],而除以 sd 则结果没有界,这可能会导致特征生成或某些问题(尤其是异常值)模型。
        【解决方案6】:

        “我假设 x_2^(2) 是值 5184”是因为它是列表中的第二项并使用下标 _2? x_2 只是数学中的一个变量标识,它适用于列表中的所有行。请注意,最高的原始期中考试结果(即未平方的结果)在期末考试中下降,而最低的原始期中成绩在期末考试中增加最多。 Theta 是一个固定值,一个系数,因此在某处您对 x_1 和 x_2 值的标准化必须变为(编辑:非负数,小于 1)以允许这种行为。通过确定枢轴点的位置,这有望为您提供一个起点。

        【讨论】:

          【解决方案7】:

          通常我们将它们都归一化为均值为零并介于 [-1, 1] 之间。

          您可以轻松地做到这一点,方法是除以绝对值的最大值,然后去除样本的平均值。

          【讨论】:

            猜你喜欢
            • 2016-04-14
            • 2020-07-20
            • 2012-04-06
            • 1970-01-01
            • 2021-03-01
            • 2021-05-28
            • 2016-04-21
            • 2019-11-08
            • 1970-01-01
            相关资源
            最近更新 更多