【公式】
【原理】
假设我们有m个样本。特征向量的维度为n。
【演算】
若希望H(θ)=Y,则需求出以下公式的θ值,有:
X · θ = Y
XTX · θ = XTY
(XTX)-1(XTX) · θ = (XTX)-1XTY
Eθ = (XTX)-1XTY
θ = (XTX)-1XTY
【Matlab】
data
= load(
'E:\机器学习\ex1_003\ex1\ex1data2.txt' );
X = data( :, 1 : 2);
y = data( :, 3);
m = length(y);
X = [ones(m, 1) X]; %X增加一列以形成a +bx1 +cx2 +dx3....的线性h(theta)
theta = normalEqn(X, y);
fprintf( 'Theta computed from the normal equations: \n' );
fprintf( ' %f \n' , theta);
fprintf( '\n' );
X = data( :, 1 : 2);
y = data( :, 3);
m = length(y);
X = [ones(m, 1) X]; %X增加一列以形成a +bx1 +cx2 +dx3....的线性h(theta)
theta = normalEqn(X, y);
fprintf( 'Theta computed from the normal equations: \n' );
fprintf( ' %f \n' , theta);
fprintf( '\n' );