机器学习实战案例:使用线性回归构建房价预测模型

Boston房价预测是机器学习过程中一个关于线性回归的问题,属于监督学习。本文通过对Boston房价进行分析,进行机器学习模型训练。本文所使用的的数据集下载:Boston_housing_predict。

下面给出数据集中各列名称的定义:
CRIM: 城镇人均犯罪率
ZN: 住宅用地所占比例
INDUS: 城镇中非住宅用地所占比例
CHAS: 虚拟变量,用于回归分析
NOX: 环保指数
RM: 每栋住宅的房间数
AGE: 1940 年以前建成的自住单位的比例
DIS: 距离 5 个波士顿的就业中心的加权距离
RAD: 距离高速公路的便利指数
TAX: 每一万美元的不动产税率
PTRATIO: 城镇中的教师学生比例
B: 城镇中的黑人比例
LSTAT: 地区中有多少房东属于低收入人群
MEDV: 房子均价

#导入需要使用的工具包
import pandas as pd                           
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error

#然后,我们利用pandas工具包里面的函数read_csv()将我们需要分析的数据集导入,并显示数据集中前5行的数据。
data=pd.read_csv(r'C:\Users\Liujiangchuan\Desktop\Work_zone\BostonHousingData.csv')
data.head()

#这里的read_csv()中,由于我是直接复制的文件地址,由于在python中\有转义的含义,如\t代表TAB,\n代表换行,为了让\不被解读为转义字符,有三种解决办法:1路径前加r保持为原生字符串,2替换为双反斜杠,3,替换为单正斜杠。我采取了第一种方法。
#现在我们来简单处理一下数据,我们将数据集的结果‘target’这一列去掉构造X,构造y保存‘target’这一列。
X = data.copy().drop(['target'],axis=1)
y = data['target']

#现在我们可以得到,X就是所有的房价影响因素数据,y就是房价。
#下面我们利用sklearn.model_selection工具包里面的train_test_split对训练和测试数据集进行划分。
#比例为70%(训练)--30%(测试)
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3)

#接下来就构建线性回归模型并进行拟合。
lr=LinearRegression()
lr.fit(X_train,y_train)

#最后进行模型预测和对预测结果进行分析。
y_pred=lr.predict(X_test)
print(r2_score(y_test,y_pred))
print(mean_squared_error(y_test,y_pred))

利用predict函数可以预测所给定的测试数据集所得到的房价,然后用r2_score()函数得到R方值用于评价所得到模型的好坏,R方值越接近1,模型效果越好。最后我们可以通过计算预测值和真实值之间的方差来对预测结果进行评估,均方差(MSE)越小越好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值