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

本文通过多元线性回归算法分析影响房价的因素,利用EXCEL初步建模,然后使用sklearn进行数据处理和模型训练,提高预测精度。在statsmodels中引入虚拟变量处理共线性问题,最终达到较高的预测准确性。
摘要由CSDN通过智能技术生成

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

人工智能与机器学习A第二次作业
“garbage in garbage out”(简称GIGO),是计算机术语常用的俚语,意思是如果你输入错误的数据,那么(计算机)输出的结果也是错误的。这个结论在机器学习领域也成立。多元线性回归属于监督机器学习算法,通过已知数据训练得到模型或决策函数。应用此算法时,不能盲目地套用算法,必须对数据的有效性、正确性、假设合理性进行验证,如果发现数据本身不正确,就需要纠正。 1、学习参考资料“多元线性回归模型预测房价.ipynb”,自己实践重新做一下针对房屋数据集“house_prices.csv”的多元线性回归(基于统计分析库statsmodels);并重点理解 偏差数据、缺少数据的预处理(数据清洗)、“特征共线性”的检测方法以及统计学的传统估计参数。 2、用Excel重做上面的多元线性回归,求解回归方程; 3、用机器学习库Sklearn库重做上面的多元线性回归,对三者的结果进行对比分析。


一、多元线性回归预测房价

基于多元线性回归的房价预测

市场房价的走向受到多种因素的影响,通过对影响市场房价的多种因素进行分析,有助于对未来房价的走势进行较为准确的评估。
多元线性回归适用于对受到多因素影响的数据进行分析的场景。由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。本文基于数学模型,对过去一段时间某一地区的房屋出售价格等相关数据进行整理,利用多元线性回归的方法对数据进行分析,预测该地区未来的房价走势。

均方误差(MSE)即方差,MSE表示预测数据和原始数据对应点误差的平方和的均值。
请添加图片描述
其中n为样本的个数。


二、使用EXCEL进行数据分析

  1. 删去无法作为自变量的部分,将房屋售价作为因变量,表格中的其他字段作为自变量选进行回归分析
    请添加图片描述
    请添加图片描述

  2. 得到结果
    请添加图片描述

  3. 回归分析结果
    本次数据集回归分析得到的R=0.823465502201885,x和y之间是正相关。
    P-value为回归系数t统计量的P值。由表中P-value的值可以发现,area的P值远小于显著性水平0.05,与y相关性较强。bedrooms和bathrooms的P值大于显著性水平0.05,这两个自变量与y相关性较弱。
    线性回归模型:y= 10072.1070467272+ 345.911018840024x1 -2925.80632466665x2+7345.39171369362x3实现对未来房价的预测。

三、sklearn线性回归实现房价预测模型

1.线性回归

  1. 上传数据集到jupyter
    请添加图片描述
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from mpl_toolkits.mplot3d import Axes3D  # 不要去掉这个import
from sklearn.metrics import mean_squared_error, r2_score
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
  1. 显示列名和数据类型类型
df = pd.read_csv('house_prices.csv')
df.info()#显示列名和数据类型类型
df.head(7)

请添加图片描述

  1. 读取数据
# 读取数据
data_x=df[['area','bedrooms','bathrooms']]
data_y=df['price']
  1. 训练模型
# 训练模型
model = LinearRegression()
model.fit(data_x, data_y)

请添加图片描述

y_predict = model.predict(data_x)
  1. 线性回归
# 模型参数
print('模型参数')
print(model.coef_)
print('模型截距')
print(model.intercept_)
# MSE
print('预测房价')
print(mean_squared_error(data_y, y_predict))
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值