手把手教你学Python之波士顿房价预测(scikit-learn的应用)

目录

1、波士顿房价预测介绍

2、线性回归算法

3、调用scikit-learn库实现房价预测


1、波士顿房价预测介绍

问题描述:波士顿房价数据集统计的是20世纪70年代中期波士顿郊区房价的中位数,统计了城镇人均犯罪率、不动产税等共计13个指标,统计出房价,试图能找到那些指标与房价的关系。数据集中一共有506个样本,每个样本包含13个特征信息实际房价,波士顿房价预测问题目标是给定某地区的特征信息,预测该地区房价,是典型的回归问题(房价是一个连续值)。波士顿房价数据集中主要的指标名称及其含义如下。

手把手教你学Python之波士顿房价预测(scikit-learn的应用)_第1张图片

机器学习库scikit-learn中自带了波士顿房价数据集,可直接加载。房价预测可采用线性回归算法。

2、线性回归算法

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,通过属性的线性组合进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化

线性回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。线性回归算法的公式如下,xi表示样本,可以是多维的,w为系数矩阵,b为偏置。目标是学习w和b两个参数,使得计算结果和真实结果之间的误差最小

手把手教你学Python之波士顿房价预测(scikit-learn的应用)_第2张图片

3、调用scikit-learn库实现房价预测

直接调用scikit-learn中的相关函数,实现波士顿房价简单预测的代码如下,主要步骤包括:

  1. 加载数据
  2. 划分训练集和测试集
  3. 创建线性回归模型
  4. 拟合训练数据
  5. 得到预测结果
  6. 计算相应的评测指标

手把手教你学Python之波士顿房价预测(scikit-learn的应用)_第3张图片

这里主要是给大家演示了下机器学习库中相关函数的调用,并没有对数据进行分析,接下来通过数据可视化技术来分析单个指标与房价之间的关系。关键代码如下。

手把手教你学Python之波士顿房价预测(scikit-learn的应用)_第4张图片

    各个指标与房价之间的关系可视化效果如下:

手把手教你学Python之波士顿房价预测(scikit-learn的应用)_第5张图片

通过可视化图表分析,可以看到不同特征的取值范围有较大差异,有些取值范围从0到1,有些从1到100,还有0到400等等,为了消除不同量纲的影响,可对数据进行标准化处理。一般采用将数据减去数据组的平均数再除以标准差z = (x - u) / s u表示均值s表示标准差

此外,通过图表效果可知,部分指标与房价之间存在明显的线性关系(例如RM、LSTAT等),而有些指标与房价之间的关系则不那么明显(例如CHAS、B等)。可调用机器学习库中相关方法获取最相关的特征,关键代码如下:(首先对数据进行标准化,然后获取最相关的3个特征

手把手教你学Python之波士顿房价预测(scikit-learn的应用)_第6张图片

选择最相关的三个特征,结果为: RMLSTATPTRATIO

最后使用最相关的特征数据进行房价的预测,关键代码如下:

手把手教你学Python之波士顿房价预测(scikit-learn的应用)_第7张图片

    将预测结果和真实结果画在同一个图上,如下图所示,可以清楚的看到它们之间的关系。

   

手把手教你学Python之波士顿房价预测(scikit-learn的应用)_第8张图片

思考通过预测值和真实值对比,可知有一些异常点,如何去除这些异常点?例如删除房价为50的样本。

相关代码可关注微信公众号:手把手教你学编程,回复 boston 获取,详细的视频讲解可查看 CSDN学院 里的手把手教你学Python系列视频:https://edu.csdn.net/lecturer/5686。   欢迎加入QQ群一起学习交流:858228002 。

 

你可能感兴趣的:(Python学习,python,机器学习,数据分析,编程语言)