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;