机器学习-couresera exercise1-多变量的线性回归

这篇博客探讨了多变量线性回归在预测房价中的应用。通过使用ex1data2.txt数据集,涉及特征归一化、梯度下降算法的实现与学习率选择,以及正规方程的使用。实验表明,特征归一化能加速梯度下降的收敛,而适当的学习率选择至关重要。最终,比较不同方法得到的theta,发现归一化后的梯度下降与正规方程解出的房价预测结果接近。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一个博客里面,我们写了单变量的线性回归问题,现在我们来完成多变量的线性回归问题!

多变量的线性回归——预测房价

在这个房价问题中,我们的数据存放在ex1data2.txt这个文件里面,第一列是房间大小,第二列是房间的卧室数目,第三列是房价,也就是说对比单变量的线性回归问题,我们这个问题存在两个特征,一个是size,一个是number of bedrooms!

存储数据进入数组里面:

data = load('ex1data2.txt');%存储数据
X = data(:, 1:2);%前面两列存入X,第一列是房间大小,第二列是卧室的数目
y = data(:, 3);%第三列是房价
m = length(y);%m表示实例的个数

(1)特征归一化-feature normalization

我们是使用梯度下降算法之前,如果多个特征的规格是不一样的,我们第一步必须要先特征归一化,这样才能更快的使得梯度下降收敛!因为房子的大小是房间卧室数目的1000倍,所以我们就是要完成featureNormalize.m里面的代码以实现特征归一化!

step1:得到数据集中的各个特征的平均值

step2:得到数据集X各个特征的标准差,使得每一个特征先减去均值再除以标准差,实现归一化操作!

注1:并不是一定要计算标准差,你也可以使用特征的变化幅度(max-min);matlab计算标准差用的是std函数,比如说X(:,1)表示的是房间的大小,那么std(X(:,1))表示的就是求解特征房间大小的标准差!)

注2:在进行这样的操作之后,我们需要注意当我们给这个模型一个新的房间的参数x,那么我们首先也要先归一化x,然后才能进行预测房价!

function [X_norm, mu, sigma] = featureNormalize(X)
%FEATURENORMALIZE Normalizes the features in X 
%   FEATURENORMALIZE(X) returns a normalized version of X where
%   the mean value of each feature is 0 and the standard deviation
%   is 1. This is often a good preprocessing step to do when
%   working with learning algorithms.

% You need to set these values correctly
X_norm = X;
mu = zeros(1, size(X, 2));
sigma = zeros(1, size(X, 2));

% ====================== YOUR CODE HERE ======================
% Instructions: First, for each feature dimension, compute the mean
%               of the feature and subtract it from the dataset,
%               storing the mean value in mu. Next, comp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值