机器学习实战二:波士顿房价预测 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这个区间预测结果较为准确,超过这个区间预测价格偏小,可进一步对原始数据离群值做处理。
  • 数据比较干净,练习起来缺少特征工程部分的工作,而且是预测性模型,相比分类问题少了模型选择上的空间。
相关文章
|
机器学习/深度学习 人工智能 算法
机器学习-线性模型(波士顿房价预测)
机器学习-线性模型(波士顿房价预测)
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
10月前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
305 2
基于python 机器学习算法的二手房房价可视化和预测系统
|
11月前
|
机器学习/深度学习 数据采集 人工智能
AI技术实践:利用机器学习算法预测房价
人工智能(Artificial Intelligence, AI)已经深刻地影响了我们的生活,从智能助手到自动驾驶,AI的应用无处不在。然而,AI不仅仅是一个理论概念,它的实际应用和技术实现同样重要。本文将通过详细的技术实践,带领读者从理论走向实践,详细介绍AI项目的实现过程,包括数据准备、模型选择、训练和优化等环节。
940 3
|
11月前
|
机器学习/深度学习 数据处理 Python
机器学习实战:房价预测项目
【7月更文挑战第13天】本文详细介绍了基于机器学习的房价预测项目的实战过程。从数据准备、特征工程、模型构建到结果评估,每一步都至关重要。通过合理的特征选择和模型优化,我们可以构建出性能优异的房价预测模型,为房地产行业的决策提供有力支持。未来,随着机器学习技术的不断发展和应用场景的不断拓展,房价预测模型将更加智能化和精准化。
|
机器学习/深度学习 数据采集 算法
【机器学习】线性回归:以房价预测为例
【机器学习】线性回归:以房价预测为例
784 1
|
机器学习/深度学习 数据采集 算法
机器学习实战第3天:手写数字识别
机器学习实战第3天:手写数字识别
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
361 14
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
265 1
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)

热门文章

最新文章