Path: blob/master/Week 9/Programming Assignment - 8/ex8/submit.m
616 views
function submit()1addpath('./lib');23conf.assignmentSlug = 'anomaly-detection-and-recommender-systems';4conf.itemName = 'Anomaly Detection and Recommender Systems';5conf.partArrays = { ...6{ ...7'1', ...8{ 'estimateGaussian.m' }, ...9'Estimate Gaussian Parameters', ...10}, ...11{ ...12'2', ...13{ 'selectThreshold.m' }, ...14'Select Threshold', ...15}, ...16{ ...17'3', ...18{ 'cofiCostFunc.m' }, ...19'Collaborative Filtering Cost', ...20}, ...21{ ...22'4', ...23{ 'cofiCostFunc.m' }, ...24'Collaborative Filtering Gradient', ...25}, ...26{ ...27'5', ...28{ 'cofiCostFunc.m' }, ...29'Regularized Cost', ...30}, ...31{ ...32'6', ...33{ 'cofiCostFunc.m' }, ...34'Regularized Gradient', ...35}, ...36};37conf.output = @output;3839submitWithConfiguration(conf);40end4142function out = output(partId, auxstring)43% Random Test Cases44n_u = 3; n_m = 4; n = 5;45X = reshape(sin(1:n_m*n), n_m, n);46Theta = reshape(cos(1:n_u*n), n_u, n);47Y = reshape(sin(1:2:2*n_m*n_u), n_m, n_u);48R = Y > 0.5;49pval = [abs(Y(:)) ; 0.001; 1];50Y = (Y .* double(R)); % set 'Y' values to 0 for movies not reviewed51yval = [R(:) ; 1; 0];52params = [X(:); Theta(:)];53if partId == '1'54[mu sigma2] = estimateGaussian(X);55out = sprintf('%0.5f ', [mu(:); sigma2(:)]);56elseif partId == '2'57[bestEpsilon bestF1] = selectThreshold(yval, pval);58out = sprintf('%0.5f ', [bestEpsilon(:); bestF1(:)]);59elseif partId == '3'60[J] = cofiCostFunc(params, Y, R, n_u, n_m, ...61n, 0);62out = sprintf('%0.5f ', J(:));63elseif partId == '4'64[J, grad] = cofiCostFunc(params, Y, R, n_u, n_m, ...65n, 0);66out = sprintf('%0.5f ', grad(:));67elseif partId == '5'68[J] = cofiCostFunc(params, Y, R, n_u, n_m, ...69n, 1.5);70out = sprintf('%0.5f ', J(:));71elseif partId == '6'72[J, grad] = cofiCostFunc(params, Y, R, n_u, n_m, ...73n, 1.5);74out = sprintf('%0.5f ', grad(:));75end76end777879