机器学习实战二:波士顿房价预测 Boston Housing(上)

简介: 机器学习实战二:波士顿房价预测 Boston Housing

活动背景


波士顿房地产市场竞争激烈,而你想成为该地区最好的房地产经纪人。为了更好地与同行竞争,你决定运用机器学习的一些基本概念,帮助客户为自己的房产定下最佳售价。幸运的是,你找到了波士顿房价的数据集,里面聚合了波士顿郊区包含多个特征维度的房价数据。你的任务是用可用的工具进行统计分析,并基于分析建立优化模型。这个模型将用来为你的客户评估房产的最佳售价。


数据介绍


20210127171832136.png20210127171813437.png

详细代码解释


导入Python Packages


首先导入需要的python包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
plt.style.use('ggplot')
%load_ext klab-autotime

读入数据 Read-In Data


将housing,csv读入

data = pd.read_csv('../data_files/2.Boston_housing/housing.csv')
data.info()
# No  属性  数据类型  字段描述x
# 1 CRIM  Float 城镇人均犯罪率
# 2 ZN  Float 占地面积超过2.5万平方英尺的住宅用地比例
# 3 INDUS Float 城镇非零售业务地区的比例
# 4 CHAS  Integer 查尔斯河虚拟变量 (= 1 如果土地在河边;否则是0)
# 5 NOX Float 一氧化氮浓度(每1000万份)
# 6 RM  Float 平均每居民房数
# 7 AGE Float 在1940年之前建成的所有者占用单位的比例
# 8 DIS Float 与五个波士顿就业中心的加权距离
# 9 RAD Integer 辐射状公路的可达性指数
# 10  TAX Float 每10,000美元的全额物业税率
# 11  PTRATIO Float 城镇师生比例
# 12  B Float 1000(Bk - 0.63)^ 2其中Bk是城镇黑人的比例
# 13  LSTAT Float 人口中地位较低人群的百分数
# 14  MEDV  Float (目标变量/类别属性)以1000美元计算的自有住房的中位数

20210127173857696.png20210127173908498.png

从这里可以看出来,数据一共有14个特征,并且没有缺失值,所以我们可以不用缺失值处理,真不错


从Package读取Boston数据


其实在我们的sklearn库中,就有波士顿房屋数据集,我们可以直接读取数据集

from sklearn.datasets import load_boston
dir(load_boston())
print(load_boston().DESCR)

2021012721322795.png


这里也有对数据集详细的介绍,除此之外,我们还需要将数据集转化了类型,变为我们熟悉的pandas.core.frame.DataFrame,之后后面的操作就是一模一样的了

X = load_boston().data
y = load_boston().target
df = pd.DataFrame(X, columns=load_boston().feature_names)
df.head()

20210127213215634.png


相关性检验


看看各个特征中是否有相关性,判断一下用哪种模型比较合适


plt.figure(figsize=(12,8))
sns.heatmap(data.corr(), annot=True, fmt='.2f', cmap='PuBu')


20210127174554658.png


数据不存在相关性较小的属性,也不用担心共线性,所以我们可以用线性回归模型去预测


data.corr()['MEDV'].sort_values()


20210127182404909.png

多变量研究


尝试了解因变量和自变量、自变量和自变量之间的关系


sns.pairplot(data[["LSTAT","RM","PIRATIO","MEDV"]])


20210127203931107.png


划分训练集和测试集


由于数据没有null值,并且,都是连续型数据,所以暂时不用对数据进行过多的处理,不够既然要建立模型,首先就要进行对housing分为训练集和测试集,取出了大概百分之20的数据作为测试集,剩下的百分之70为训练集

X ,y = data[data.columns.delete(-1)], data['MEDV']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=888)

查看训练集和测试集的维度

20210127204407930.png


建立线性回归模型


首先,我利用线性回归模型对数据进行训练,并预测测试集数据,对于具体的线性回归的介绍,可以参考Linear Regression Machine Learning


20210127203536568.png

linear_model = LinearRegression()
linear_model.fit(X_train, y_train)
coef = linear_model.coef_#回归系数
line_pre = linear_model.predict(X_test)
print('SCORE:{:.4f}'.format(linear_model.score(X_test, y_test)))
print('RMSE:{:.4f}'.format(np.sqrt(mean_squared_error(y_test, line_pre))))
coef


根据结果来看,预测的score为76%左右,然后均方误差RMSE大约是4.5,为了更好的看出预测数据的问题,我想试着可视化一下


20210127204618136.png

df_coef = pd.DataFrame()
df_coef['Title'] = data.columns.delete(-1)
df_coef['Coef'] = coef
df_coef


这是线性回归的相关系数


20210127204640357.png

hos_pre = pd.DataFrame()
hos_pre['Predict'] = line_pre
hos_pre['Truth'] = y_test
hos_pre.plot(figsize=(18,8))

20210127204908266.png


  • 得出score为76%,从上图得知预测的房价整体偏小,在10-35这个区间预测结果较为准确,超过这个区间预测价格偏小,可进一步对原始数据离群值做处理。
  • 数据比较干净,练习起来缺少特征工程部分的工作,而且是预测性模型,相比分类问题少了模型选择上的空间。
相关文章
|
4天前
|
机器学习/深度学习 人工智能 算法
机器学习-线性模型(波士顿房价预测)
机器学习-线性模型(波士顿房价预测)
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
4天前
|
机器学习/深度学习 数据采集 算法
基于Python的机器学习预测房价
基于Python的机器学习预测房价
68 0
|
4天前
|
机器学习/深度学习 传感器 数据采集
机器学习实战 —— 工业蒸汽量预测(六)
机器学习实战 —— 工业蒸汽量预测(六)
11 0
|
4天前
|
机器学习/深度学习 传感器 数据采集
机器学习实战 —— 工业蒸汽量预测(五)
机器学习实战 —— 工业蒸汽量预测(五)
5 0
|
4天前
|
机器学习/深度学习 传感器 数据采集
机器学习实战 —— 工业蒸汽量预测(四)
机器学习实战 —— 工业蒸汽量预测(四)
13 1
|
4天前
|
机器学习/深度学习 传感器 数据采集
机器学习实战 —— 工业蒸汽量预测(三)
机器学习实战 —— 工业蒸汽量预测(三)
11 1
|
4天前
|
机器学习/深度学习 数据采集 传感器
机器学习实战 —— 工业蒸汽量预测(二)
机器学习实战 —— 工业蒸汽量预测(二)
9 1
|
4天前
|
机器学习/深度学习 传感器 数据采集
机器学习实战 —— 工业蒸汽量预测(一)
机器学习实战 —— 工业蒸汽量预测(一)
14 1
|
4天前
|
机器学习/深度学习 自然语言处理 算法
机器学习算法原理与应用:深入探索与实战
【5月更文挑战第2天】本文深入探讨机器学习算法原理,包括监督学习(如线性回归、SVM、神经网络)、非监督学习(聚类、PCA)和强化学习。通过案例展示了机器学习在图像识别(CNN)、自然语言处理(RNN/LSTM)和推荐系统(协同过滤)的应用。随着技术发展,机器学习正广泛影响各领域,但也带来隐私和算法偏见问题,需关注解决。

热门文章

最新文章