Linear Regression_最小二乘(LMS)

 

 1 %% Machine Learining----Linear Regression
 2 close all
 3 clear
 4 
 5 %%data load
 6 Year = linspace(0,13,14);
 7 Price = [2,2.5,2.9,3.147,4.515,4.903,5.365,5.704,6.853,7.791,8.561,10,11.28,12.9];
 8 
 9 %%train data
10 alpha = 0.01;
11 theta = [1,8];
12 obj_old = 1e10;
13 tor = 1e-2;
14 
15 tic;
16 for time = 1:1000
17     delta = zeros(1,2);
18     objective = 0;
19     hypothesis = theta(1) + theta(2) * Year;
20     drawnow;
21     subplot(2,1,1);
22     plot(Year,Price,'rx',Year,hypothesis);
23     for i = 1:14
24         delta = (theta(1) + theta(2) * Year(i) - Price(i)) * [1,Year(i)] + delta;
25         objective = (theta(1) + theta(2) * Year(i) - Price(i)) * (theta(1) + theta(2) * Year(i) - Price(i))+ objective;
26     end
27     theta = theta - alpha * delta / 14;
28     
29     fprintf('objective is %.4f\n', objective);
30     if abs(obj_old - objective) < tor
31         fprintf('torlerance is samller than %.4f\n', tor);
32         break;
33     end
34     obj_old = objective;
35     subplot(2,1,2);
36     plot(toc,obj_old);
37     axis([0 20 0 800]) %xmin是x最小,xmax是x最大,ymin,ymax类似
38     hold on;
39 end

 

posted on 2017-02-23 20:00  Pkj  阅读(586)  评论(0编辑  收藏  举报

导航