Coursera机器学习 week9 assignment

来源:互联网 发布:java自学书籍推荐书目 编辑:程序博客网 时间:2024/06/05 21:17

代码仅供思路参考————>


estimateGaussian.m:

mu = ( sum(X, 1) )'./m;    %(n*1)temp = bsxfun(@minus, X, mu');  %(m*n)sigma2 = ( sum( (temp.^2), 1) )'./m;  %(n*1)


selectThreshold.m:

predictions = (pval < epsilon);  %标出异常的数据      true_pos = sum( (predictions== 1) & (yval==1) ); %真阳性   false_pos = sum( (predictions== 1) & (yval==0) ); %假阳性   false_neg = sum( (predictions== 0) & (yval==1) ); %假阴性   pre = true_pos / (true_pos + false_pos);   rec = true_pos / (true_pos + false_neg);      F1 = 2*pre*rec/(pre + rec);


cofiCostFunc.m:

temp = (X*Theta').*R;  %(1682*943)J = sum( sum( (temp - Y.*R).^2) )/2.0 + (lambda/2) * ( sum(sum( X.^2 )) + sum(sum( Theta.^2 )) );X_grad = (temp - Y.*R) * Theta + lambda * X;Theta_grad = (temp - Y.*R)' * X + lambda * Theta;%用for循环,比较繁琐的解法%for i = 1:size(R, 1)%  %每部电影  共迭代1682次%  idx = find(R(i, :)==1);  %该行中已经评分的列索引%  temp_Theta = Theta(idx, :);  %(1*3)%  temp_Y = Y(i, idx);  %(1*943)%  %  X_grad(i, :) = ( X(i, :) * temp_Theta' - temp_Y ) * temp_Theta;%%end%%for j = 1:size(R, 2)%  %每个用户  共迭代943次%  idx = find(R(:, j)==1);  %该列中已经评分的行索引  %  temp_X = X(idx, :);   %(q*3)%  temp_Y = Y(idx, j);   %(q*1)%  %  Theta_grad(j, :) = ( Theta(j, :) * temp_X' - temp_Y' ) * temp_X;%  %end


0 0
原创粉丝点击