吳恩達機器學習 程式設計練習8

2021-09-26 07:01:52 字數 2040 閱讀 2419

假設特徵服從正態分佈,通過計算整體概率判斷是否小於某個值,從而判斷是不是正常的。

estimategaussian.m

%estimate parameters

mu = sum(x) / m;

m_add = zeros(n-1,n);

mu_tmp = [mu;m_add];

mu_tmp = ones(m,n) * mu_tmp;

sigma2 = sum((x - mu_tmp).^2) / m;

selectthreshold.m

yval_true = find(yval == 1);

yval_false = find(yval == 0);

p_true = find(pval <= epsilon);

p_false = find(pval > epsilon);

%actual class = 1 predicted class = 1

truepositive = size(intersect(yval_true,p_true),1);

%actual class = 0 predicted class = 1

falsepositive = size(intersect(yval_false,p_true),1);

%actual class = 1 predicted class = 0

falsenegative = size(intersect(yval_true,p_false),1);

precision = truepositive / (truepositive + falsepositive);

recall = truepositive / (truepositive + falsenegative);

f1 = 2*precision*recall / (precision + recall);

根據已有的資訊來進行**,有點類似於線性回歸(或者說叫多元線性回歸?)

coficostfunc.m

program 1----for-loop

j =  0.5 * sum(sum(r.*((x*theta'-y).^2))) + (lambda/2)*(sum(sum(theta.^2)) + sum(sum(x.^2))); 

for i = 1:num_movies

idx = find(r(i,:) == 1);

theta_temp = theta(idx,:);

y_temp = y(i,idx);

a = x(i,:);

t = (x(i,:) * theta_temp' - y_temp);

x_grad(i,:) = (x(i,:) * theta_temp' - y_temp) * theta_temp + lambda*x(i,:);

endfor i = 1:num_users

idx = find(r(:,i) == 1); %every for all movies

theta_grad(i,:) = (x(idx,:)*theta(i,:)' - y(idx,i))' * x(idx,:) + lambda*theta(i,:);

end

program 2----vectorized

j = (1 / 2) * sum(sum(((x * theta' - y) .* r) .^ 2));

j = j + (lambda / 2) * sum(sum(theta .^ 2)) + ...

(lambda / 2) * sum(sum(x .^ 2));

x_grad = ((x * theta' - y) .* r) * theta + lambda * x;

theta_grad = ((x * theta' - y) .* r)' * x + lambda * theta;

馬上結束吳恩達機器學習課程學習了,因此一些理解的東西放到學完課程之後寫乙個大的總結,這裡就不寫了,只是放一下習題答案。

吳恩達機器學習 程式設計練習7

本練習的主題是k means clustering and principal component analysis,即k均值聚類演算法和主要成分分析。因此這篇文章也分兩部分來討論,根據作業檔案的步驟來分別對k均值聚類演算法和pca進行討論原理以及如何實現。k means clustering al...

吳恩達機器學習 程式設計練習 ex6 1

本節練習是為了應用svm演算法,並靈活運用c和gamma引數 首先load資料集並plot part1 讀取資料1,並將資料整理成可識別的格式 path c users huanuo pycharmprojects ml ex6 svm ex6 ex6data1.mat m loadmat path...

吳恩達機器學習筆記

為了解決實際生活中的問題,我們通常需要乙個數學模型。比如,小明有乙個房子 他想賣掉房子 為了知道房子的 小明收集了該地區近兩年的房屋交易 他發現房屋 與房屋大小呈正相關,所以他畫了了一幅圖 小明的房屋大小用紅色的 代替。可見和小明房屋一樣大小的房子並不存在,而類似的房屋 又有很大差別,如此小明決定用...