Coursera-吴恩达-机器学习-第九周-编程作业-Anomaly Detection and Recommender Systems

本次文章内容: 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;

猜你喜欢

转载自blog.csdn.net/qq1376725255/article/details/84679767
今日推荐