简易的线性回归房价预测模型

房价预测在机器学习中已经是个经典的入门题目了,本篇与其它博客的不同之处在于加入了对数据集的处理代码,初学者只需复制代码便可直接得到训练结果,无需更改。
首先提供数据集的下载链接,提取码:4t5w
其中kc_train.csv和kc_test.csv分别为训练数据及测试数据,训练数据第二列为房价信息,其余为房屋有关参数,其实不必详细了解。
完整代码如下所示,关键步骤皆已加入注释,可放心食用:


# 导入相关python库
import numpy as np
import pandas as pd

#设定随机数种子
np.random.seed(1)

#使用matplotlib库画图
import matplotlib.pyplot as plot


#读取数据
housing = pd.read_csv('kc_train.csv',header=None)
housing.iloc[:,1].to_csv('kc_train2.csv',mode = 'w',header = True,index = None)     #单独提取房价数据
housing.drop(housing.iloc[:,1:2],axis = 1,inplace = True,)     #删除训练数据中的房价数据
target=pd.read_csv('kc_train2.csv')      #销售价格
test=pd.read_csv('kc_test.csv')      #测试数据

#数据预处理
housing.info()    #查看是否有缺失值
target.info()

#特征缩放
from sklearn.preprocessing import MinMaxScaler   #数据归一化
minmax_scaler=MinMaxScaler()
minmax_scaler.fit(housing)   #进行内部拟合,内部参数会发生变化
scaler_housing=minmax_scaler.transform(housing)
scaler_housing=pd.DataFrame(scaler_housing,columns=housing.columns)   #创建DataFrame
minmax_scaler.fit(test)
scaler_test=minmax_scaler.transform(test)
scaler_test=pd.DataFrame(scaler_test,columns=test.columns)



#选择基于梯度下降的线性回归模型
from sklearn.linear_model import LinearRegression
LR_reg=LinearRegression()
#进行拟合
LR_reg.fit(scaler_housing,target)   #LinearRegression().fit(X,Y)


#使用均方误差用于评价模型好坏
from sklearn.metrics import mean_squared_error
predict=LR_reg.predict(scaler_housing)   #输入数据进行预测得到结果
mse=mean_squared_error(predict,target)   #使用均方误差来评价模型好坏,可以输出mse进行查看评价值
#print('均方误差为:',mse)


#绘图进行比较
plot.figure(figsize=(10,7))       #画布大小
num=100
x=np.arange(1,num+1)              #取100个点进行比较
plot.plot(x,target[:num],label='target')      #目标取值
plot.plot(x,predict[:num],label='predict')       #预测取值
plot.legend(loc='upper right')   #线条显示位置
plot.show()


#输出测试数据
result=LR_reg.predict(scaler_test)   #利用模型预测测试数据房价
df_result=pd.DataFrame(result)
df_result.to_csv("result.csv")

运行结果如下图所示:
在这里插入图片描述
此外,此模型对测试数据的房价预测结果已输出到result.csv文件中,可自行查看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳宝不可以家暴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值