首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特征缩放与截取

特征缩放与截取
EN

Stack Overflow用户
提问于 2018-10-17 10:10:49
回答 1查看 388关注 0票数 0

这是一个初学者的问题,但我有一个包含两个特征的数据集,房子的大小和卧室的数目,所以我正在研究八度;所以基本上我尝试进行一个特征缩放,但是就像在“设计矩阵”中,我添加了一列(用于tetha0),所以我尝试做一个平均规范化:(x-均值(X)/std(X)),但在其中一个列中,明显是1,因为每行只有1,所以当我这样做时,截距colum设置为0:

代码语言:javascript
复制
 mu = mean(X)
mu =

  1.0000   2000.6809      3.1702

 votric = X - mu
votric =

  0.00000    103.31915     -0.17021
  0.00000   -400.68085     -0.17021
  0.00000    399.31915     -0.17021
  0.00000   -584.68085     -1.17021
  0.00000    999.31915      0.82979

那么,第一列不应该被排除在平均归一化之外?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 13:20:10

是的,您应该首先对所有观测数据进行规范化,然后才添加偏倚项(即‘一列’)。

标准化的目的是让不同的特征在平等的基础上进行比较,这大大加快了优化算法的速度。

偏倚(即一列)在技术上不是特征的一部分。它只是一个数学上的方便,让我们使用一个矩阵乘法,以一种计算和非有效的方式获得我们的结果。

换句话说,您不需要说Y = bias + weight1 * X1 + weight2 * X2等,而是创建一个虚构的X0 = 1,并将偏差表示为weight0,然后允许您以矢量化的方式表示它,如下所示:Y = weights * X

“正常化”偏见术语没有意义,因为很明显,这将使X0 = 0,其效果将是,然后你会完全放弃偏见项的影响。所以,是的,先正常化,然后再在标准化的特征中添加“一个”。

PS。我在这里冒险,猜测你是从安德鲁·吴( Andrew )在course上的机器学习课程来的。您将在ex1_multi.m中看到,这确实是他在代码中所做的(第52行)。

代码语言:javascript
复制
% Scale features and set them to zero mean
fprintf('Normalizing Features ...\n');

[X mu sigma] = featureNormalize(X);

% Add intercept term to X
X = [ones(m, 1) X];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52852353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档