1. 程式人生 > >Coursera-吳恩達-機器學習-第九周-程式設計作業-Anomaly Detection and Recommender Systems

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;