波士顿房价预测

波士顿房价预测

题目说明

该实验使用的数据集是波士顿数据集,共有 13 个特征,总共 506 条数据, 每条数据包含房屋以及房屋周围的详细信息。其中包含城镇犯罪率,一氧化氮浓 度,住宅平均房间数,到中心区域的加权距离以及自住房平均房价等等

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U4oWcuvD-1617868175524)(C:\Users\杨\AppData\Roaming\Typora\typora-user-images\image-20210408113924148.png)]

现在我们的任务是,找到这些特征与房价之间的关系,由于房价是连续变化 的实数,很明显,这个任务属于回归分析。由于房价与 13 个特征变量相关,针 对此问题可以建立如下线性回归模型来预测房价:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BMDXJfEH-1617868175527)(C:\Users\杨\AppData\Roaming\Typora\typora-user-images\image-20210408114005535.png)]

其中,𝑥𝑖(i=1,2,3…,13)表示上述 13 个特征,而这 13 个特征都会对房价有不同的权重𝑤𝑖(i=1,2,3…,13),经过略微的偏置 b,最终可算出房价 Y。

实验目的

  1. 利用网络公开的波士顿房价数据集,作为模型输入数据。

  2. 构建机器学习模型,并进行训练与评估。

  3. 了解机器学习模型搭建的总体流程。

  4. 通过该项目的学习可以学会一些关于机器学习库 sklearn 的基本用法和一些基本的数据处理方法。

实验环境

ModelArts华为云平台

XGBoost-Sklearn框架

python3

数据集:sklearn库自带的波士顿房价数据集

实验原理

本实验提供了关于波士顿房价和其影响因素的13个属性共506个数据值,对数据集进行划分并标准化,建立线性回归模型。将划分出来的部分数据用作线性回归模型的训练集,对模型进行训练,并且用剩余的数据集作为测试来验证训练出的模型的结果。

1.数据处理

本实验提供了506个样本数据量,通过对数据集的分割,将其中101个数据集作为训练集用来对回归模型进行训练。剩余样本作为测试集,来验证模型的准确性。

运用StandardScaler方法标准化数据集,使每个特征取值处于0到1之间。能够让处于不同维度之间的特征值在数值上可比较,提升模型精度。同时归一化处理后的数据在进行梯度下降的时候更加平缓,能够提升收敛速度。

2.线性回归模型

调用sklearn中的LinearRegression回归模型并将训练集导入,进行训练。

3.正规方程

正规方程是对于某些线性回归问题,当代价函数对theta求偏导不能直接为零时的一种计算代价函数最小时参数的计算方法。

实验内容

# 引入相关依赖的包
# 防止不必要的警告
import warnings
warnings.filterwarnings("ignore")
# 引入数据科学基础包
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
import scipy.stats as st
import seaborn as sns
# 引入机器学习,预处理,模型选择,评估指标
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn import metrics
from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error
# 引入本次所使用的波士顿数据集
from sklearn.datasets import load_boston
# 引入算法
from sklearn.linear_model import  LinearRegression, Ridge, Lasso
# 载入波士顿房价数据集
boston = load_boston()
# x 是特征, y 是标签
x = boston.data
y = boston.target
# 查看相关属性
print('特征的列名')
print(boston.feature_names)
print("样本数据量:%d, 特征个数: %d" % x.shape)
print("target 样本数据量:%d" % y.shape[0])
#显示数据集
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['Price'] = boston
  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

成成成一

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

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

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

打赏作者

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

抵扣说明:

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

余额充值