线性回归-实践篇

总结了线性回归的理论部分,下面我们以浦东塘桥的二手房数据来实践线性回归。

数据及代码连接下载,工具使用Octave

1,数据获取

从网站爬到数据,并整理成我们需要的。爬取方式不便多讲,本人是用的jsoup。

2,数据过滤

爬到数据后,过滤了房间面积小于30平米,大于150平米的数据,总价格大于800w的也过滤了。(这些数据太小或者太大)

3,一元线性回归

x表示房子面积,y表示房价,使用正规方程组的方法计算。

拿到代码后执行one即可。

执行结果如下:




4,多元线性回归

x表示房子面积、房间数、楼层,y表示房价,使用正规方程组的方法计算。

拿到代码后执行multi即可。

执行结果如下:


% 加载数据
data = load('house.txt');

% 定义 x 和 y
x = data(:,1);
y = data(:,4);

% 绘制数据函数
function plotData(x,y)
	plot(x,y,'rx','MarkerSize',8); % Plot the data
end

% 绘制数据
plotData(x,y);
xlabel('Square Feet'); % 设置X轴标签
ylabel('Price'); % 设置Y轴标签

% 数据大小
m = length(x);

% 加一列到x向量
X = [ones(m, 1) x];

% 计算theta
theta = (pinv(X'*X))*X'*y

% 绘制拟合的直线
hold on; % 使之前数据可见
plot(X(:,2), X*theta, '-')
legend('Training data', 'Linear regression')
hold off % 结束绘制

price = [1, 80] * theta; 

fprintf(['Predicted price of a 80 sq-ft(using normal equations):\n %f\n'], price);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值