Octave实现多元线性回归(吴恩达老师作业)

注意事项

由于成功的做出了单元线性回归,多元线性回归没有出太多的问题,所以看这篇前先看一下上一篇:单元线性回归(反正我名字打错你们也能找到)

首先导入
data = load('文件名.扩展名')
x = data(:,1:2)
y = data(;,3)
m = length(y)
%将前两列设为x数组,将第三列设为y数组
归一化处理
function [x_norm, mu, sigma] = featureNormalize(x)
x_norm = x
mu = zeros(1,size(x,2))
sigma = zeros(1,size(x,2))
%初始化以上三个值

mu = mean(x)
sigma =  std(x)
x_norm = (x - repmat(mu, size(x, 1), 1))/repmat(sigma, size(x, 1), 1)
end
%mean 返回每一列的算术平均值
%std 返回每一列的标准差
%repmat 将行和列扩充 举例:
%repmat(1, 3) ------> 111;111;111
%repmat([1,2],1,2) -------> [1,2;1,2]
代价函数
function J = computeCostMulit(x, y, theta)
m = length(y)
J = 0
J = sum((x * theta - y).^2)/(2 * m)
end
参数更新
function [theta, J_history] = gradientDescentMulit(x, y, theta, alpha, num_iters)

theta = zeros(3,1)
m = length(y)

for iter =  1:num_iters
theta = theta - alpha/m * x' * (x * theta - y)
J_history(iter) = computeCostMulti(x, y, theta)

end
end
主函数部分
alpha = 0.01
num_iters = 6000
theta = zeros(3,1)
x = [ones(length(x), 1), x]
[theta_0, J_history] = gradientDescentMulit(x, y, theta, alpha, num_iters)
查看图像
plot(1:numel(J_history),J_history,‘g’)

查看图像有很多种方法,本文只提供一种,其实我也不知道这种方法能不能看得到哈哈哈哈哈哈,各位大侠饶命。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铃灵狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值