Coursera机器学习 week9 assignment

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


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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值