Machine Learning Week 2 Linear Regression with multiple variables in Matlab or Octave

来源:互联网 发布:内乡王登科网络诈骗 编辑:程序博客网 时间:2024/05/21 10:52

多变量线性回归程序实现
Matlab or Octave

第一步:变量归一化

用函数mean和std求均值和标准差
mu = mean(X);sigma = std(X);for i=1:n    X_norm(:,i) = (X_norm(:,i) - mu(i)) ./ sigma(i);end

第二步:多变量的代价函数计算法

J = (theta'*X'-y')*(X*theta-y)/(2*m);

第三步:多变量的梯度下降法求θ

for iter = 1:num_iters    J_history(iter) = computeCostMulti(X, y, theta);end


第四步:选取不同的学习速率α,观察代价函数J随迭代量的变化

α=0.001
α=0.01

α=0.1

α=1

α=10

第五步:常规方程法求θ

theta = pinv(X'*X)*X'*y;


第六步:用两种方法得到的θ分别检验

注意:常规方程法不需要用变量归一化处理

结果:


0 0