Week9_3Program_Anomaly Detection and Recommender Systems编程解析

Week9_3Program_Anomaly Detection and Recommender Systems编程解析

1. Anomaly detection分析

1.1 Estimate gaussian parameters 0 / 15

计算公式:
μi=1mj=1mx(j)i μ i = 1 m ∑ j = 1 m x i ( j )
σ2i=1mj=1m(x(j)iμi)2 σ i 2 = 1 m ∑ j = 1 m ( x i ( j ) − μ i ) 2
X=(300x2) K=3 centroids=(3x2) idx=(300x1)
在 estimateGaussian.m 中添加

mu = mean(X);
sigma2 = var(X,opt=1);

octave中mean函数的作用:
mean (x) = SUM_i x(i) / N
octave中的var函数的作用:
var (x) = 1/(N-1) SUM_i (x(i) - mean(x))^2

1.2 Select threshold 0 / 15

计算公式:
p(x;μ,σ2)=12πσ2e(xμ)22σ2 p ( x ; μ , σ 2 ) = 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2
上述求p的过程己经在 multivariateGaussian.m 中完成了, 直接用就行,程序中是pval
下面是 selectThreshold.m中用到的公式:
precison=tp+fptp p r e c i s o n = t p + f p t p
recall=tp+fntp r e c a l l = t p + f n t p
F1=prec+rec2precrec F 1 = p r e c + r e c 2 ∗ p r e c ∗ r e c
9-4
上图是lecture 11中的课件截图
* 将距离u1最近的找出来,取个平均值作为新的u1 *

  predictions = (pval < epsilon);

  truePositives  = sum((predictions == 1) & (yval == 1));
  falsePositives = sum((predictions == 1) & (yval == 0));
  falseNegatives = sum((predictions == 0) & (yval == 1));

  precision = truePositives / (truePositives + falsePositives);
  recall = truePositives / (truePositives + falseNegatives);

  F1 = (2 * precision * recall) / (precision + recall);

2. Recommender Systems

2.1 Collaborative filtering cost 0 / 20

计算公式:
J(x(1),...,x(nm),θ(1),...,θ(nu))=12(i,j):r(i,j)=1((θ(j))Tx(i)y(i,j))2 J ( x ( 1 ) , . . . , x ( n m ) , θ ( 1 ) , . . . , θ ( n u ) ) = 1 2 ∑ ( i , j ) : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) 2

X(5x3) θ θ (4x3) Y(5x4)
在 cofiCostFunc.m 中添加, 实现没有正则化项的costFunction

error = (X*Theta'-Y) .* R;
J = (1/2)*sum(sum(error .^ 2));
2.2 Collaborative filtering gradient 0 / 30

计算公式:
Jx(i)k=j:r(i,j)=1((θ(j))Tx(i)y(i,j))θ(j)k ∂ J ∂ x k ( i ) = ∑ j : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) θ k ( j )
Jθ(j)k=i:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)k ∂ J ∂ θ k ( j ) = ∑ i : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) x k ( i )

# 下面两行是2.1中添加的,计算costFunction   
error = (X*Theta'-Y) .* R;
J = (1/2)*sum(sum(error .^ 2)); 
# 下面两行是2.2中的,梯度下降计算  
X_grad = error * Theta ;
Theta_grad = error' * X ;
2.3 Regularized cost 0 / 10

计算公式:
JnoReg(x(1),...,x(nm),θ(1),...,θ(nu))=12(i,j):r(i,j)=1((θ(j))Tx(i)y(i,j))2 J n o R e g ( x ( 1 ) , . . . , x ( n m ) , θ ( 1 ) , . . . , θ ( n u ) ) = 1 2 ∑ ( i , j ) : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) 2
reg=λ2j=1nuk=1n(θ(j)k)2+λ2j=1nmk=1n(x(j)k)2 r e g = λ 2 ∑ j = 1 n u ∑ k = 1 n ( θ k ( j ) ) 2 + λ 2 ∑ j = 1 n m ∑ k = 1 n ( x k ( j ) ) 2
J=JnoReg+reg J = J n o R e g + r e g

error = (X*Theta'-Y) .* R;
J_noReg = (1/2)*sum(sum(error .^ 2));
X_grad = error * Theta ;
Theta_grad = error' * X ;
# 下面实现正则化的costFunction
costRegLeft = lambda/2 * sum(sum(Theta.^2));
costRegRight = lambda/2 * sum(sum(X.^2));
Reg = costRegLeft + costRegRight;
J = J_noReg + Reg;
2.4 Gradient with regularization 0 / 10

计算公式:
XgradnoReg=Jx(i)k=j:r(i,j)=1((θ(j))Tx(i)y(i,j))θ(j)k X g r a d n o R e g = ∂ J ∂ x k ( i ) = ∑ j : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) θ k ( j )
ThetagradnoReg=Jθ(j)k=i:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)k T h e t a g r a d n o R e g = ∂ J ∂ θ k ( j ) = ∑ i : r ( i , j ) = 1 ( ( θ ( j ) ) T x ( i ) − y ( i , j ) ) x k ( i )
XReg=λx(i)k X R e g = λ x k ( i )
ThetaReg=λθ(i)k T h e t a R e g = λ θ k ( i )
ThetaGrad=ThetagradnoReg+XReg T h e t a G r a d = T h e t a g r a d n o R e g + X R e g
ThetaGrad=ThetagradnoReg+ThetaReg T h e t a G r a d = T h e t a g r a d n o R e g + T h e t a R e g

# 下面是计算costFuncton,分两步先计算不带cost的J,再计算reg项
error = (X*Theta'-Y) .* R;
J_noReg = (1/2)*sum(sum(error .^ 2));
costRegLeft = lambda/2 * sum(sum(Theta.^2));
costRegRight = lambda/2 * sum(sum(X.^2));
Reg = costRegLeft + costRegRight;
J = J_noReg + Reg;

# 下面是计算grad,分两步先计算不带reg的grad,再计算reg
X_grad_noReg = error * Theta ;
Theta_grad_noReg = error' * X ;

X_grad = X_grad_noReg + lambda * X;
Theta_grad = Theta_grad_noReg + lambda * Theta;

3. 总结

1 Estimate gaussian parameters 0 / 15
2 Select threshold 0 / 15
3 Collaborative filtering cost 0 / 20
4 Collaborative filtering gradient 0 / 30
5 Regularized cost 0 / 10
6 Gradient with regularization 0 / 10

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值