我已经为特征规范化编写了以下代码:这里X是特征矩阵(m * n),其中m =例子数量n =特征数量
mu = mean(X);
sigma = std(X);
m = size(X,1);
% Subtracting the mean from each row
for i = 1:m
X_norm(i,:) = X(i,:)-mu;
end;
% Dividing the STD from each row
for i = 1:m
X_norm(i,:) = X(i,:)./sigma;
end;
但是在将它提交给为Andrew Ng的课程构建的服务器时,如果它是错误或正确的,它不会给我任何确认。
==
== Part Name | Score | Feedback
== --------- | ----- | --------
== Warm-up Exercise | 10 / 10 | Nice work!
== Computing Cost (for One Variable) | 40 / 40 | Nice work!
== Gradient Descent (for One Variable) | 50 / 50 | Nice work!
== Feature Normalization | 0 / 0 |
== Computing Cost (for Multiple Variables) | 0 / 0 |
== Gradient Descent (for Multiple Variables) | 0 / 0 |
== Normal Equations | 0 / 0 |
== --------------------------------
== | 100 / 100 |
注意:对不起如果我违反了课程代码,不知道怎么办。
当submit()没有给你任何积分时,这意味着你的答案是不正确的。这通常意味着,您尚未实现它,或者您的实现中存在错误。
从我所看到的,你的指数是不正确的。但是,为了不违反本课程的行为准则,您应该在Coursera论坛中提出您的问题(不发布您的代码)。
每个编程练习都有教程。这些通常非常有用,并指导您完成整个练习。
您需要迭代EACH功能
m = size(X,1);
你实际上用m获得的是ROWS(例子)的数量,但是你想得到COLUMNS的数量(特征)
解:
m = size(X,2);
试试这个它起作用,并注意到你在划分每行X而不减去平均值时犯了错误。
将两者结合起来并使用更少的代码 -
% Subtracting the mean and Dividing the STD from each row.
for i = 1:m
X_norm(i,:) = (X(i,:) - mu) ./ sigma;
end;