规范化此表中的功能

时间:2015-06-09 17:13:03

标签: machine-learning normalization

这已成为一个非常令人沮丧的问题,但我已经在Coursera讨论中提出要求,他们也无济于事。以下是问题:

enter image description here

我现在已经错了6次了。如何规范化功能?提示就是我要求的。

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

7 个答案:

答案 0 :(得分:42)

  

...同时使用功能缩放(除以    “max-min” 或功能范围)和表示正常化。

因此对于任何个别特征f:

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

e.g。 for 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

因此规范(5184)= 0.366

(使用R语言,这很像矢量化这样的表达式)

我同意令人困惑的是,他们使用 x2(2) 表示 x2(norm) 或的 X2'

编辑:在实践中,每个人都调用内置scale(...)函数,它执行相同的操作。

答案 1 :(得分:4)

要求使用特征缩放和均值归一化来标准化第二列下的第二个特征。因此,

(5184 - 6675.5) / 4075 = -0.366

答案 2 :(得分:0)

通常我们将所有这些归一化为零均值并介于[-1,1]之间。

您可以通过除以绝对值的最大值来轻松完成,然后删除样本的平均值。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

I had the same problem, in my case the thing was that I was using as average the maximum x2 value (8836) minus minimum x2 value (4761) divided by two, instead of the sum of each x2 value divided by the number of examples.

答案 5 :(得分:0)

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

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

答案 6 :(得分:-1)

对于相同的训练集,我得到了问题 问:什么是规范化特征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