这个问题已经变得相当令人沮丧,但我已经在Coursera的讨论中询问过,他们却不提供帮助。以下是问题:
我已经错了6次了。我该如何标准化这个特征?我只希望得到一些提示。
我假设x_2^(2)的值是5184,除非我添加了x_0列的1,这在讲座中提到过,但他们没有提到这一点,他在讲到创建设计矩阵X时提到了。在这种情况下,x_2^(2)的值将是72。假设其中一个是正确的(我是在玩猜谜游戏),我应该使用什么来标准化它?他在讲座中谈到了三种不同的标准化方法:一种是使用最大值,另一种是使用最大值和最小值之间的范围/差异,还有一种是使用标准差——他们希望答案精确到百分位。我应该使用哪一种?这太令人困惑了。
回答:
…使用特征缩放(通过特征的 “最大值-最小值”,或范围进行除法)和均值标准化。
因此,对于任何单个特征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(...)
函数,它做同样的事情。