同步更新:
以下是作業1用matlab實現:
匯出資料集,並畫圖顯示。
clear
clcdata =
load
('ex1data1.txt');
%讀取訓練集
x =data(:
,1);
y =data(:
,2);
m =length
(y);
%訓練集數量
figure(1
)plot
(x, y,
'rx'
,'markersize',10
);%畫圖ylabel
('profit in $10,000s');
%設定y軸標籤
xlabel
('population of city in 10,000s');
%設定x軸標籤
梯度下降matlab實現**:
x0 =
[ones
(m,1),
data(:
,1)]
;% add a column of ones to x
theta =
zeros(2
,1);
% initialize fitting parameters
iterations =
2000
;%迭代最大次數
alpha =
0.01
;%學習率 %改變學習率,結果不一樣
s =zeros
(iterations,1)
;%代價函式中的累加值
j =zeros
(iterations,1)
;%代價函式值
for k =1:
1:iterations
p =zeros(2
,1);
%迭代一次,累計清零
for i =1:
1:ms
(k)=
s(k)+(
theta(1
)+theta(2
)*x(i)-y
(i))^2
;%求j函式的累加
%求偏導
p(1)=p(
1)+(
theta(1
)+theta(2
)*x(i)-y
(i))
;%對theta1求偏導的累加
p(2)=p(
2)+(
(theta(1
)+theta(2
)*x(i)-y
(i))*x
(i))
;%對theta2求偏導的累加
end
j(k)=
s(k)/(
2*m)
;%代價函式
theta = theta-
(alpha/m)
*p;if k>
1%為了下面k-
1有索引
ifj(k-1)
-j(k)<
1e-5
%若誤差小於0.00001,則停止迭代
break
; end
endendtheta %輸出顯示theta的值
y =theta(1
)+theta(2
)*x;
%得到擬合直線
plot
(x,y)
%在圖1中畫出擬合結果
grid on
結果:
再顯示代價函式j(θ)的曲線:
figure(2
)%圖2
plot
(j)%畫出代價函式
可以看出大約在800次迭代後,代價函式就趨於平緩。根據設定的0.00001誤差要求,在1735次後停止迭代。
機器學習 單變數線性回歸及梯度下降
注 本系列部落格是博主學習stanford大學 andrew ng 教授的 機器學習 課程筆記。博主深感學過課程後。不進行總結非常easy遺忘,依據課程加上自己對不明確問題的補充遂有此系列部落格。本系列部落格包含線性回歸 邏輯回歸 神經網路 機器學習的應用和系統設計 支援向量機 聚類 將維 異常檢測...
梯度下降法實現softmax回歸MATLAB程式
解決二分類問題時我們通常用logistic回歸,而解決多分類問題時若果用logistic回歸,則需要設計多個分類器,這是相當麻煩的事情。softmax回歸可以看做是logistic回歸的普遍推廣 logistic回歸可看成softmax回歸在類別數為2時的特殊情況 在多分類問題上softmax回歸是...
線性回歸 梯度下降
線性回歸演算法屬於監督學習的一種,主要用於模型為連續函式的數值 過程總得來說就是初步建模後,通過訓練集合確定模型引數,得到最終 函式,此時輸入自變數即可得到 值。1 初步建模。確定假設函式 h x 最終 用 2 建立價值函式 j 也叫目標函式 損失函式等,求引數 用 3 求引數 對價值函式求偏導 即...