吳恩達機器學習第一道程式設計作業

2021-09-02 01:58:10 字數 2933 閱讀 2216

前段時間一直在看ng老師的機器學習 看的雲裡霧裡的 就想找題來寫寫

然後就在網上找到了一道根據 父母身高和孩子身高的訓練集 來**父母身高和孩子身高的關係

主程式:

a=load('fumushenggao.txt');

b=load('children.txt');

c=(a(:,1)+a(:,2))*0.5;

plot(c,b,'rx');

m=length(b);theta0=0;theta1=1;alfa=0.00007;jvec=zeros(1000,1);

jvec(1,1)=cal_j(theta0,theta1,c,b);

theta0=theta0-alfa/m*sum(theta0*ones(m,1)+theta1*c-b);

theta1=theta1-alfa/m*sum((theta0*ones(m,1)+theta1*c-b).*c);

jvec(2,1)=cal_j(theta0,theta1,c,b);

ii=2;

while jvec(ii-1,1)-jvec(ii,1)>=0.01

ii=ii+1;

theta0=theta0-alfa/m*sum(theta0*ones(m,1)+theta1*c-b);

theta1=theta1-alfa/m*sum((theta0*ones(m,1)+theta1*c-b).*c)

jvec(ii,1)=cal_j(theta0,theta1,c,b);

endfigure;

plot(jvec);%axis([0 10 0 60000]);

x=[150:200];y=theta0+theta1*x;

figure;

plot(x,y,'y');

計算代價函式:

function j=cal_j(th1,th2,x,y)

n=length(x);

h=th1*ones(n,1)+th2*x-y;

j=h'*h/2/n;

end

父母身高:

165 175

155 160

152 180

168 172

150 162

172 186

168 190

158 165

175 182

162 165

孩子身高:

177

162178

175165

188190

167188

170

執行結果:

訓練集:

代價函式:

線性回歸模型:

感謝博主

然後我在博主的**上加上自己的理解

a=load('fumushenggao.txt');%讀取父母身高資料

b=load('children.txt');%讀取孩子身高資料

c=(a(:,1)+a(:,2))*0.5;%取父母的平均身高

plot(c,b,'rx');//列印這些點

m=length(b);theta0=0;theta1=1;alfa=0.00007;jvec=zeros(1000,1);// 這些都是代價函式要用的值

jvec(1,1)=cal_j(theta0,theta1,c,b);

theta0=theta0-alfa/m*sum(theta0*ones(m,1)+theta1*c-b);

theta1=theta1-alfa/m*sum((theta0*ones(m,1)+theta1*c-b).*c);

jvec(2,1)=cal_j(theta0,theta1,c,b);

ii=2;

while jvec(ii-1,1)-jvec(ii,1)>=0.01 % 當滿足此條件 我們基本上理解為找到了最低點

ii=ii+1;

theta0=theta0-alfa/m*sum(theta0*ones(m,1)+theta1*c-b);

theta1=theta1-alfa/m*sum((theta0*ones(m,1)+theta1*c-b).*c)

jvec(ii,1)=cal_j(theta0,theta1,c,b);

endfigure;

plot(jvec);%axis([0 10 0 60000]);

x=[150:200];y=theta0+theta1*x;

figure;

plot(x,y,'y');

function j=cal_j(th1,th2,x,y)

n=length(x);

h=th1*ones(n,1)+th2*x-y;

j=h'*h/2/n; %h'*h就是h^2的和 說不清 自己動手去測試一下吧

end

j函式

theta0 theta1 變化規則

吳恩達機器學習程式設計作業python版 第一次作業

我正在努力用python實現吳恩達的機器學習程式設計作業。由於時間關係,我大概會只實現最重要的部分,不會實現全部內容。如果有錯誤,希望可以及時糾正我,謝謝大家。首先,匯入要用到的庫 numpy,matplotlib。import numpy as np import matplotlib.pyplo...

吳恩達機器學習筆記一

機器學習分類 監督學習 無監督學習 強化學習 深度學習 監督學習 回歸問題,意指要 乙個連續的輸出值,比如房價。分類問題,目標是 離散值輸出 0 or 1 比如 腫瘤是良性或惡性,可以有乙個特徵 腫瘤大小,也可以兩個特徵 年齡和腫瘤大小,或者無限多特徵 支援向量機。分類是將一些例項資料分到合適的類別...

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

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