本次文章内容: Coursera吴恩达机器学习课程,第九周编程作业。编程语言是Matlab。
本文只是从代码结构上做的小笔记。
Anomaly Detection
part 0 Initialization
Part 1: Load Example Dataset
加载数据集,换出图像可视化。
Part 2: Estimate the dataset statistics
最大似然发估计,mu和sigma。使用训练集。
计算multivariate的density。使用训练集。
Part 3: Find Outliers
使用验证集。for loop 循环计算最合适的epsilon和最佳F1度量。
得到epsilon之后,即可判断outlier。画出outlier图像。
Part 4: Multidimensional Outliers
将程序应用于一个feature更多的情况。
code:
estimateGaussian中添加:
mu = 1/m * sum(X);
rep=repmat(mu, m, 1);
sigma2 = 1/m * sum ( (X - rep).^2 );
selectThreshold中添加:
predictions = (pval < epsilon);
tp = sum((predictions == 1) & (yval == 1));
fp = sum((predictions == 1) & (yval == 0));
fn = sum((predictions == 0) & (yval == 1));
precision = tp/(tp + fp);
recall = tp/(tp + fn);
F1 = (2*precision*recall)/(precision+recall);
Recommender Systems
part 0 Initialization
Part 1: Loading movie ratings dataset
画出数据集。
Part 2: Collaborative Filtering Cost Function
加载数据,movie的parameter。
计算CostFunction。
Part 3: Collaborative Filtering Gradient
使用梯度下降法,求解最优化问题。
Part 4: Collaborative Filtering Cost Regularization
cost function,添加正则项。
Part 5: Collaborative Filtering Gradient Regularization
梯度下降法,添加正则项。
Part 6: Entering ratings for a new user
修改最新movie的评分,
Part 7: Learning Movie Ratings
输入新的数据集,进行学习。 training the model。
Part 8: Recommendation for you
train model 之后,可以 make recommendations by computing the predictions matrix.进行预测了。
code:
在函数cofiCostFunc中添加:
iner = (X * Theta').*R - Y.*R;
J =0.5 .* sum( sum( iner.*iner )) +...
0.5*lambda*sum(sum(Theta.*Theta)) + 0.5*lambda*sum(sum(X.*X)) ;
X_grad = (((X*Theta').*R*Theta - Y.*R*Theta)+lambda.*X);
Theta_grad = ( (X'* ((X*Theta').*R) -X'*(Y.*R) ) )'+lambda.*Theta;