前段時間一直在看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...