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=1mxi(j)
σi2=1mj=1m(xi(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的過程己經在 multivariateGaussian.m 中完成了, 直接用就行,程序中是pval
下面是 selectThreshold.m中用到的公式:
precison=tp+fptp
recall=tp+fntp
F1=prec+rec2precrec
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

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

計算公式:
Jxk(i)=j:r(i,j)=1((θ(j))Tx(i)y(i,j))θk(j)
Jθk(j)=i:r(i,j)=1((θ(j))Tx(i)y(i,j))xk(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
reg=λ2j=1nuk=1n(θk(j))2+λ2j=1nmk=1n(xk(j))2
J=JnoReg+reg

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=Jxk(i)=j:r(i,j)=1((θ(j))Tx(i)y(i,j))θk(j)
ThetagradnoReg=Jθk(j)=i:r(i,j)=1((θ(j))Tx(i)y(i,j))xk(i)
XReg=λxk(i)
ThetaReg=λθk(i)
ThetaGrad=ThetagradnoReg+XReg
ThetaGrad=ThetagradnoReg+ThetaReg

# 下面是計算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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章