OCTAVE TUTORIAL

Riesenie systemu linearnych rovnic:
x - matica trenovacich prikladov
y - vektor cielovych hodnot

theta=x'*x\(x'*y)

------
Priklad:

Nahodna vstupna matica, 1000 prikladov, 3 atributy:

x=rand(1000,3)*10
x(:,4)=1

Cielova matica s pridanim gausovskeho sumu:

y=3*x(:,1)-4*x(:,2)+2.3*x(:,3)+7
y=y+randn(1000,1)*5

Zobrazime data:
plot3(x(:,1),x(:,2),y,"x")

Riesenie:
theta=x'*x\(x'*y)

theta =

   2.9934
  -4.0628
   2.3716
   7.1284

Skusime predpovedat hodnoty:
yy=x*theta
plot(y,yy,"x")
plot(y-yy,"x")
mean(y-yy)
mean(abs(y-yy))
std(y-yy)

----------------------------------
Priklad 2: skutocne data

Data o cenach domov v Bostone
13 atributov
1 cielova hodnota
506 prikladov

x=load housing.data;
y=x(:,14);
x(:,14)=1;
plot3(x(:,4),x(:,13),y,"x")

theta=x'*x\(x'*y)
yy=x*theta;
plot3(x(:,4),x(:,13),y,"x",x(:,4),x(:,13),yy,"o")

mean(y-yy);
mean(abs(y-yy));
mean(abs(y-yy)/mean(y));

----------------------------------


