多元线性回归算法预测房价
人工智能与机器学习A第二次作业“garbage in garbage out”(简称GIGO),是计算机术语常用的俚语,意思是如果你输入错误的数据,那么(计算机)输出的结果也是错误的。这个结论在机器学习领域也成立。多元线性回归属于监督机器学习算法,通过已知数据训练得到模型或决策函数。应用此算法时,不能盲目地套用算法,必须对数据的有效性、正确性、假设合理性进行验证,如果发现数据本身不正确,就需要纠正。 1、学习参考资料“多元线性回归模型预测房价.ipynb”,自己实践重新做一下针对房屋数据集“house_prices.csv”的多元线性回归(基于统计分析库statsmodels);并重点理解 偏差数据、缺少数据的预处理(数据清洗)、“特征共线性”的检测方法以及统计学的传统估计参数。 2、用Excel重做上面的多元线性回归,求解回归方程; 3、用机器学习库Sklearn库重做上面的多元线性回归,对三者的结果进行对比分析。
多元线性回归算法预测房价
一、多元线性回归预测房价
基于多元线性回归的房价预测
市场房价的走向受到多种因素的影响,通过对影响市场房价的多种因素进行分析,有助于对未来房价的走势进行较为准确的评估。
多元线性回归适用于对受到多因素影响的数据进行分析的场景。由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。本文基于数学模型,对过去一段时间某一地区的房屋出售价格等相关数据进行整理,利用多元线性回归的方法对数据进行分析,预测该地区未来的房价走势。
均方误差(MSE)即方差,MSE表示预测数据和原始数据对应点误差的平方和的均值。
其中n为样本的个数。
二、使用EXCEL进行数据分析
-
删去无法作为自变量的部分,将房屋售价作为因变量,表格中的其他字段作为自变量选进行回归分析
-
得到结果
-
回归分析结果
本次数据集回归分析得到的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.线性回归
- 上传数据集到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 # 用来正常显示负号
- 显示列名和数据类型类型
df = pd.read_csv('house_prices.csv')
df.info()#显示列名和数据类型类型
df.head(7)
- 读取数据
# 读取数据
data_x=df[['area','bedrooms','bathrooms']]
data_y=df['price']
- 训练模型
# 训练模型
model = LinearRegression()
model.fit(data_x, data_y)
y_predict = model.predict(data_x)
- 线性回归
# 模型参数
print('模型参数')
print(model.coef_)
print('模型截距')
print(model.intercept_)
# MSE
print('预测房价')
print(mean_squared_error(data_y, y_predict))