machine-learning第二周 review中提交 Linear Regression 上机作业相关问题
2015-12-15 11:28
477 查看
环境:windows7
一、使用matlab
1、一开始使用matlab,但在提交时发现ex1/lib/makeValidFieldName.m 的18行应该为if(isoct),否则程序都无法跑通。
2、然后又碰到怎么都无法提交,总是提示
Submission failed: unexpected error: Error using ==> urlread
Could not POST to URL.
问题解决详见https://www.coursera.org/learn/machine-learning/discussions/vgCyrQoMEeWv5yIAC00Eog
注意到Tom Mosher 有这么一句话:
As
with most open-source projects, the Octave team doesn't really focus on Windows. I don't have any problems with the Octave 4.0.0 Command Line Interface, so I usually stick with that. Sometimes the GUI acts a little weird, so I don't use it
much unless I need to copy-and-paste a result into a Forum thread.
这给了我灵感,也许matlab也是不怎么care
windows,因此我转而下载octave (什么鬼逻辑,上文明明说octave 不care windows
)
二、使用Octave4.0.0
1、提交时出现CA
certificate 之类的错误,然后打了两个patch(不要再去修改上述makeValidFieldName.m的代码,用patch覆盖即可):
https://drive.google.com/file/d/0B6lXyE7fgSlXZjlqQ3FIRExmTDA/view?usp=sharing https://drive.google.com/file/d/0B6lXyE7fgSlXXy1nMXlpb3RyZ1E/view?usp=sharing
2、重启Octave。
终于Done!
==
== 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 | Nice work!
== Computing Cost (for Multiple Variables) | 0 / 0 | Nice work!
== Gradient Descent (for Multiple Variables) | 0 / 0 | Nice work!
== Normal Equations | 0 / 0 | Nice work!
== --------------------------------
== | 100 / 100 |
三、总结:
1、请使用Octave上机,即使你修复了程序bug,在matlab也无法提交。
2、有问题先找讨论组:https://www.coursera.org/learn/machine-learning/discussions,有众多大神贴心解答。
3、作业我前前后后整了一周多,明白只有真正自己做出来的人才知道收获多少,因此不要轻易去看“答案”哦
一、使用matlab
1、一开始使用matlab,但在提交时发现ex1/lib/makeValidFieldName.m 的18行应该为if(isoct),否则程序都无法跑通。
2、然后又碰到怎么都无法提交,总是提示
Submission failed: unexpected error: Error using ==> urlread
Could not POST to URL.
问题解决详见https://www.coursera.org/learn/machine-learning/discussions/vgCyrQoMEeWv5yIAC00Eog
注意到Tom Mosher 有这么一句话:
As
with most open-source projects, the Octave team doesn't really focus on Windows. I don't have any problems with the Octave 4.0.0 Command Line Interface, so I usually stick with that. Sometimes the GUI acts a little weird, so I don't use it
much unless I need to copy-and-paste a result into a Forum thread.
这给了我灵感,也许matlab也是不怎么care
windows,因此我转而下载octave (什么鬼逻辑,上文明明说octave 不care windows
)
二、使用Octave4.0.0
1、提交时出现CA
certificate 之类的错误,然后打了两个patch(不要再去修改上述makeValidFieldName.m的代码,用patch覆盖即可):
https://drive.google.com/file/d/0B6lXyE7fgSlXZjlqQ3FIRExmTDA/view?usp=sharing https://drive.google.com/file/d/0B6lXyE7fgSlXXy1nMXlpb3RyZ1E/view?usp=sharing
2、重启Octave。
终于Done!
==
== 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 | Nice work!
== Computing Cost (for Multiple Variables) | 0 / 0 | Nice work!
== Gradient Descent (for Multiple Variables) | 0 / 0 | Nice work!
== Normal Equations | 0 / 0 | Nice work!
== --------------------------------
== | 100 / 100 |
三、总结:
1、请使用Octave上机,即使你修复了程序bug,在matlab也无法提交。
2、有问题先找讨论组:https://www.coursera.org/learn/machine-learning/discussions,有众多大神贴心解答。
3、作业我前前后后整了一周多,明白只有真正自己做出来的人才知道收获多少,因此不要轻易去看“答案”哦
function J = computeCost(X, y, theta) %COMPUTECOST Compute cost for linear regression % J = COMPUTECOST(X, y, theta) computes the cost of using theta as the % parameter for linear regression to fit the data points in X and y % Initialize some useful values m = length(y); % number of training examples % You need to return the following variables correctly J = 0; % ====================== YOUR CODE HERE ====================== % Instructions: Compute the cost of a particular choice of theta % You should set J to the cost. J = (1/(2*m))* sum((X * theta - y).^2); % ========================================================================= end
function J = computeCostMulti(X, y, theta) %COMPUTECOSTMULTI Compute cost for linear regression with multiple variables % J = COMPUTECOSTMULTI(X, y, theta) computes the cost of using theta as the % parameter for linear regression to fit the data points in X and y % Initialize some useful values m = length(y); % number of training examples % You need to return the following variables correctly J = 0; % ====================== YOUR CODE HERE ====================== % Instructions: Compute the cost of a particular choice of theta % You should set J to the cost. J = (1/(2*m))* (X * theta - y)' * (X * theta - y); % ========================================================================= end
function [X_norm, mu, sigma] = featureNormalize(X) %FEATURENORMALIZE Normalizes the features in X % FEATURENORMALIZE(X) returns a normalized version of X where % the mean value of each feature is 0 and the standard deviation % is 1. This is often a good preprocessing step to do when % working with learning algorithms. % You need to set these values correctly X_norm = X; mu = zeros(1, size(X, 2)); sigma = zeros(1, size(X, 2)); % ====================== YOUR CODE HERE ====================== % Instructions: First, for each feature dimension, compute the mean % of the feature and subtract it from the dataset, % storing the mean value in mu. Next, compute the % standard deviation of each feature and divide % each feature by it's standard deviation, storing % the standard deviation in sigma. % % Note that X is a matrix where each column is a % feature and each row is an example. You need % to perform the normalization separately for % each feature. % % Hint: You might find the 'mean' and 'std' functions useful. % %disp(X); mu = mean(X); %fprintf('%f %f \n', mu(1), mu(2)); sigma = std(X); %fprintf('%f %f \n', sigma(1), sigma(2)); n = size(X, 2); for iter = 1:n X_norm(:,iter) =( X_norm(:,iter) - mu(iter) ) / sigma(iter) ; end % ============================================================ end
function [theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters) %GRADIENTDESCENT Performs gradient descent to learn theta % theta = GRADIENTDESENT(X, y, theta, alpha, num_iters) updates theta by % taking num_iters gradient steps with learning rate alpha % Initialize some useful values m = length(y); % number of training examples J_history = zeros(num_iters, 1); for iter = 1:num_iters % ====================== YOUR CODE HERE ====================== % Instructions: Perform a single gradient step on the parameter vector % theta. % % Hint: While debugging, it can be useful to print out the values % of the cost function (computeCost) and gradient here. % % answer1: %theta(1) = theta(1) - (alpha * (1/m)) * sum((X*theta - y) ) ; %theta(2) = theta(2) - (alpha * (1/m)) * (X(:,2)' * (X*theta - y)) ; % answer2: delta = ((theta' * X' - y')*X)'; theta = theta - alpha / m * delta; %fprintf('%f %f \n', theta(1), theta(2)); % ============================================================ % Save the cost J in every iteration J_history(iter) = computeCost(X, y, theta); fprintf('%f \n', J_history(iter)); end end
function [theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters) %GRADIENTDESCENTMULTI Performs gradient descent to learn theta % theta = GRADIENTDESCENTMULTI(x, y, theta, alpha, num_iters) updates theta by % taking num_iters gradient steps with learning rate alpha % Initialize some useful values m = length(y); % number of training examples J_history = zeros(num_iters, 1); fprintf('X =\n'); disp(X); fprintf('y =\n'); disp(y); for iter = 1:num_iters % ====================== YOUR CODE HERE ====================== % Instructions: Perform a single gradient step on the parameter vector % theta. % % Hint: While debugging, it can be useful to print out the values % of the cost function (computeCostMulti) and gradient here. % %answer1 : % %tmp_status = (X * theta - y); %theta = theta - (alpha * (1/m)) * ( X' * tmp_status ) ; % %answer2 : % %tmp_status = (X * theta - y); %theta(1) = theta(1) - (alpha * (1/m)) * sum(tmp_status ) ; %theta(2) = theta(2) - (alpha * (1/m)) * (X(:,2)' * tmp_status) ; %theta(3) = theta(3) - (alpha * (1/m)) * (X(:,3)' * tmp_status) ; % %answer3 : delta = ((theta' * X' - y')*X)'; theta = theta - alpha / m * delta; %fprintf('%f %f %f\n', theta(1), theta(2),theta(3)); % ============================================================ % Save the cost J in every iteration J_history(iter) = computeCostMulti(X, y, theta); fprintf('%f \n', J_history(iter)); end end
function [theta] = normalEqn(X, y) %NORMALEQN Computes the closed-form solution to linear regression % NORMALEQN(X,y) computes the closed-form solution to linear % regression using the normal equations. theta = zeros(size(X, 2), 1); % ====================== YOUR CODE HERE ====================== % Instructions: Complete the code to compute the closed form solution % to linear regression and put the result in theta. % % ---------------------- Sample Solution ---------------------- theta = (inv( X' * X )) * X' * y ; % ------------------------------------------------------------- % ============================================================ end
相关文章推荐
- Hibernate——缓存+如何配置二级缓存
- 运行Delphi 2007 IDE提示无法打开"EditorLineEnds.ttr"文件
- Python继承与多继承
- 安装CocoaPods
- 修改状态栏的颜色
- wampserver自定义网站根目录
- int型变量拷到字节数组中的顺序
- Hive与HBase的区别
- zabbix使用过程中遇到的问题与解决方法(3)
- php提交post和get的几种方式
- Android Studio使用自定义的Android.mk文件编译第三方so库
- 为什么要学习elua?
- Git技巧:右键菜单怎么去除?
- EasyUi的DataGrid组件扩展,统计当前页信息
- 问题:oracle 计算年龄;结果:oracle中根据生日计算年龄的问题
- Kinect for Windows SDK开发入门(十五):进阶指引 下
- vmware 下找不到ifcfg-eth0的问题
- SurfaceView在线视频播放
- jQuery css-dom
- jQuery中Ajax应用