多元线性回归算法预测房价

一、前言

(一)理论基础

多元线性回归适用于受多种因素影响的数据进行分析的场景,而市场的房价走向恰好受到多种因素影响。所以用多元线性回归得到多个自变量的最优组合来预测房价或估计它的因变量会更加有效,更加符合实际。

(二)多元线性回归模型

在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。

多元线性回归模型,(multivariable linear regression model )在实际经济问题中,一个变量往往受到多个变量的影响。例如,家庭消费支出,除了受家庭可支配收入的影响外,还受诸如家庭所有的财富、物价水平、金融机构存款利息等多种因素的影响。

(三)线性回归理论基础

一元线性回归是分析只有一个自变量(自变量x和因变量y)线性相关关系的方法。一元线性回归分析的数学模型为:y = a+bx+ε。
使用偏差平方和分别对参数a和参数b求偏导,可以得到线性模型的未知参数a、b的最小二乘估计值,其中,偏差平方和定义为∑(yi-a-bXi)2,a和b的唯一解如下图所示
在这里插入图片描述
为了方便回归效果显著性检验,根据b的估计,引入LXX、LYY、LXY三个数学符号,这三个数学符号定义如下图所示。
在这里插入图片描述
而在现实应用中,因变量的变化往往受多个自变量影响,此时就需要用到两个或两个以上的因素作为自变量来解释因变量的变化,这就叫做多元回归。也就是说,多元线性回归就是当多个自变量与因变量之间是线性关系时,所进行的回归就是多元线性回归。它的数学模型便是:y=β0+β1X1+β2X2+…+βpXp+ε
再使用残差平方和分别对参数βi求偏导,可得到线性模型的未知参数βi的估计值。

二、EXCEL求解回归方程

导入房价数据集
在这里插入图片描述
选择其中的area,bathroom,bedroom中的20组数据作为x,以对应的20组房价作为y。

可以看到结果如下
在这里插入图片描述
再次选择不同组别的数据进行生成图表

40组:
在这里插入图片描述
全部数据
在这里插入图片描述

三、用机器学习库Sklearn库重做上面的多元线性回归

直接求解:
导入Sklearn库并读取数据文件:

import pandas as pd
import numpy as np
import math
import matplotlib.pyplot as plt
from sklearn import linear_model
data = pd.read_csv('house_prices.csv')
data.head()

结果:
在这里插入图片描述

去除id这一列非变量:

new_data=data.iloc[:,1:]
new_data.head()

在这里插入图片描述

new_data.corr()

在这里插入图片描述
然后取area,bedrooms和bathrooms为X轴,price为Y轴进行线性回归求解。

x_data = new_data.iloc[:, 1:4] #are、bedrooms、bathroom对应列
y_data = new_data.iloc[:, -1] #price对应列
print(x_data, y_data, len(x_data))

在这里插入图片描述
取出结果

# 应用模型
model = linear_model.LinearRegression()
model.fit(x_data, y_data)
print("回归系数:", model.coef_)
print("截距:", model.intercept_)
print('回归方程: price=',model.coef_[0],'*area +',model.coef_[1],'*bedrooms +',model.coef_[2],'*bathromms +',model.intercept_)

请添加图片描述
可以看到在使用sklearn重做之后的线性回归为

price= 345.9110188400239 *area + -2925.8063246667703 *bedrooms + 7345.39171369394 *bathromms + 10072.107046726975

四、参考文章

sklearn线性回归实现房价预测模型
基于多元线性回归的房价预测

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值