当前课程知识点:计算思维与人工智能基础 >  第三部分:python基础 >  第十章:实例分析与实践 >  10.2房价的预测

返回《计算思维与人工智能基础》慕课在线视频课程列表

10.2房价的预测在线视频

下一节:10.3手写数字识别

返回《计算思维与人工智能基础》慕课在线视频列表

10.2房价的预测课程教案、知识点、字幕

下面我们给大家介绍一下多元回归的例子

房价的预测

前面我们给大家介绍了单元线性回归

单元线性回归是利用一个自变量来去

估计因变量的一个回归

构建这样的一个回归方程

那么多变量的线性回归

也称之为多元线性回归

那么他就是利用多个自变量

去估计因变量这样的一个

构建这样的一个回归方程

那么从而来去解释和预测因变量的值

那么多元线性回归模型中的

这个因变量和大多数的自变量都是定量的值

某些特定指标呢需要转化为定量值

才能应用到回归方程中

事物的联系是多方面的

而影响事物发展的因素也是多样的

那么由多个自变量最优组合共同来估计因变量

比单一的自变量预测更有效

更符合实际情况

比如说像消费水平预测模型中的

比如说用通过工资水平

受教育程度

职业

地区

家庭负担等因素

都会去影响到这个消费水平

而这些影响因素的单位和量级肯定也是不同的

虽然不会影响自变量的重要程度

但对回归系数大小还是有影响

所以呢我们在后期都要做一些什么呀

归一化的处理对这样的数据啊

那么来看我们有这样的一个数据集

就是波士顿的房价的这样的一个数据集

那么这里面的有13列组成

前面的12例都是这些特征的属性

那么第13列呢

是自住的平均房价啊

那么这里面啊

比如说第一列他是

人均犯罪率

第二列呢

就是占地面积超过两万五平方米的这个住房的这个占的比例

以及他的每个城镇非零售业我的一个比例

那么第四列就是一个

是否有大片土地这样的一个虚拟的参数

有还是没有

那么有就是1

没有就是0

第五列可以看的到他是一个氮氧化物浓度

也可以看作是一个污染的参数

那么第六个呢

就是平均每人所住的房间数

那么第七个是

1940年前业主所占这个比例

下面一个是到达波士顿中心区域的这个加权指数

那么再看我们的第九个呢

是到达径向公路的系数

那么第十个是所有财产价值在每一万元他的一个税率

另外的话就是第十一个是我们的什么呀

城镇师生比

城镇的师生比

那么第十二个呢

就是人口中地位低下者的这个比例的一个情况

那么最后一列是自住房的这个平均的价格

那么也就说这些的因素

其实都会影响这个住房的这个平均价格

那么这样的一个数据集

那么这个数据集呢

一共有506条

我们刚才可以看到他有13个数据

前面12个为特征属性

那么最后一个我们其实要他就是我们的什么呀

因变量那么就是其实要去预测

通过前面的这些特征属性来与预测最后一个房价的值啊

那么因为每一列的属性的取值的范围都是不一样啊

所以我们对我们刚才这个数据呢

是要做一些归一化的处理

否则的话那个他本身的

像这个数值里面他有今天像这个有零点几的

有8点12点几的

那我们还有

不一样

那么有还有这个有几十的

还有几百的

那么这个他对后面的这个影响的就变的不同

让我们这些都影响是一样的

那么要做每一列做一个归一化的处理

归一化的处理就是

我们可以看到他的是一个

就是当前值与这个最小值的差距

比上我们最大值与最小值的这个差

通过代码去实现的话那么每一列通过一个循环来去写

每一列它的值呢都是用什么呀

当前的值与最小值与我们最大值与最小值的比

是这样去来去实现

恩对于模型的构建

我们可以看到

多元线性回归模型的可以用不同的特征值的输入

与相应的这个权值相乘

他的求和来加上偏置而来去得到

通过这个图的描述呢

就是这样

原来是一个x

现在是多个x

权值加上偏置来去 获得我们的这个因变量y

那么这里面的多元变量的损失的函数

和前面的单变量的模型的是一样

我们用这个均方差

那么在我们遇到最小损失函数的过程中

我们也是通过梯度下降法来去获得

那么这个里面因为多元变量的梯度下降

应该对每一个变量进行求导

所以呢

我们可以看到,

如果有这样一个表达式

这样一个表达式

那么有三个变量

分别要对每一个变量来进行求导

或是对每个变量来进行备份

来获得一个梯度的一个向量

那么不断的迭代让我们的损失最小

来获得我们的最后什么呀

最优的模型

那么在这个实现的过程中呢

是要通过这样几步来完成的

首先呢

我们要去加载数据

波士顿数据集呢是一个CSV文件

所以我们可以引入pd.read_CSV这样的一个函数

来把它读进来

下面的一步要做一些归一化的处理

然后那么分X是我们的特征集

y是我们说标签集

把它分开

再下一步呢就是构建我们的模型

构建模型是用线性模型

刚才我们说可以通过keras.Sequential

做这样的一个线性模型

然后呢

我们要对它定义它的优化的方式

那么优化我们通过梯度下降法SGD

学习率是0.01

我们的损失函数的一个设定

下面就是训练

训练通过model.fit来去训练

我们训练多少epochs

一百给定义

那么训练好了以后我们就可以去预测

预测我们可以看得到预测值

跟我们的实际的值它的差距

来去确定我们这个模型的好坏

那这个就是我们波士顿数据集

来实现一个房价预测这样的一个模型

下面我们可以在jupyter下看一下我们具体的实现

下面我们利用多元线性回归的模型来实现

波士顿房价的预测

首先呢我们来看

需要导进我们需要的TensorFlow

numpy

pandas

matplotlib

以及TensorFlow下面的keras

导进来以后呢

第二步呢我们就需要读入我们的数据

那么数据文件是在我们指定的目录下

我们通过pd.read_CSV这样的函数把它读进来

读进来我们看一下我们的数据

这是十列

那下面呢是我们的三列

共十三例

506行啊

再下面,我们需要做一些数据准备

是把我们的列标号把他保存起来

然后把我们的数据转换成numpy的格式

再下面呢我们对我们的数据可以做一个图形的展示

那么这个里面我们可以把前面的每一列

跟我们的最后一列

做一个散点图来观察一下

也就是我们前面的12列的特征

每一列的特征

跟我们房价的

平均房价的一个关系

我们可以看的到第一个这个图就是

这个是我们这个犯罪率

跟我们的住房的平均价格之间的一个关系

下面这个呢

就是我们在两万五千平方英尺以上的这个住宅地的这个比例

与我们平均房价之间的关系啊

再下面一个就是每个城镇的非零售业务的这个比例

跟房价之间的关系

那么以及这个我们说的有大片土地CHAS这个虚拟数

虚拟参数的0和1

这个也看不出来什么

然后这是一个氮氧化物这个浓度和我们的房价的比例

我们可以看到这个房价其实比较低的这一段啊

你可以看它的氧化物浓度还是比较高的

另外话人均房间数啊

来跟我们房价之间以及1940年前的业主单位所占的比例

这也是低房价这个业主所占的比例比较高一些

另外就是我们这个

到达波士顿市中心区域加权距离我们房价之间的关系

再下面一个是到达径向公路之间的

和我们房价之间的关系

以及后面的所有财产一万美元的一个税率啊

再下面这个就是师生比和房价之间的关系

以及最后一个就是我们这个人口地位低下的这个比例

跟房价之间的关系

那么这个房价比较低的时候这块比较密集

这是我们这个每一列的数据

跟我们最后的标签数据之间的关系

我们从图上可以了解一下

得到一个直观的感受

下面我们可以对它进行归一化的处理

那么这时我们做归一化的处理

另外的话我们把我们的数据集进行拆分

那么把我们前面的特征呢给x

然后标签的给y

最后我们可以看我们x的形状和y的形状是一样的

可以看到x呢是506行12列

y呢就是506行1列

这是他的一个情况

我们也可以看一下第一条数据

那么第一条数据x呢是有这样12个数组成的

那么y呢是他的实际的平均房价是24

下面我们就可以进行构建模型

通过keras.Sequential这个建立一个序列模型

首先我们建一个什么呀序列模型

建立好序列模型对我们这个优化器损失函数啊

以及学习率要进行一下确定啊

那么这里面的我们用的SDG

梯度下降法然后我们学习率是0.01

那么这么损失函数都做一下指定

那么指定以后呢

下面就可以对模型进行训练

训练我们的数据集

那么就是训练数据是x

然后标签是y

那么训练是什么

100epochs

那么可以看到

每次从1训练到什么呀

506

那么训练一百次

我们可以看到是训练的过程中大家可以观察一下

我们这个损失

那么损失值他是在不断减小的过程

那么一百批次以后他的损失可以减小到29点多

那么它的准确率可以达到70%多

那么这个损失出来以后

我们就可以看了下我们这个训练以后

我们对这个模型里面的参数

整个的看一下

那么模型的那么输入层输出层

那么它的参数

然后就可以预测

因为x是一个两维的

所以我们在预测的时候

我们给的时候

我们可以看的到只能切片

不能只是给一个下标

所以切片我们是第0第1其实是第一个

第一个X也就是实有12

一行12列这个数据预测出来

这个我们的平均房价应该是多少呢

我们可以看到这个预测出来是28

跟我们的标签是有差异的

另外我们再看

如果我们可以预测多个

那我们这里面也是需要切片

这里面y的值也是二维的

只不过他是由506行

1列组成

所以切片以后我们可以看得到

那么这是十个

从第一条到第十条

我们可以这里面缺

比如说我们只要一到六

那么就是从第二个到什么呀

那么2345啊

那么这是从这样子的来

运行一下我们可以看到啊

2345

那么这是第一28

那么从25这个下面的预测的结果是什么呀

是不是一样的

另外的话我们也可以看一下我们刚才模型建立以后他的那个参数

那么这个参数呢

我们看着这个

我们多元线性回归y的值来自于什么呀

是每一个X

那每一个X跟他带一个权值

所以我们12列有12个权值

然后呢会有一个偏置

我们可以看一下我们的参数运行一下

那么输出来以后可以看

这是我们权值

一共有什么呀

12个

然后这是我们的什么呀

这是我们的是偏置

偏置是这样子的

那么也可以通过这样子的方式

我们如果看这个

他这个通过model.trainable_variables来可以看

那么第0是可以看得到我们的前面的权值

我们跟上面的一样

如果我们看另外一个是一个什么呀

最后的另外一个参数偏置

偏置的值可以看到这两个是一样的

那么这就是一个

多元线性回归模型的一个构建

以及它的预测啊

就给大家介绍到这

计算思维与人工智能基础课程列表:

第一部分:计算思维

-1.计算思维的提出

-2.计算思维的要素与应用

-3.培养计算思维

-4.智能时代的教师与教学

-章测试

第二部分:人工智能

-1.人工智能的发展

-2.人工智能的实现与机器学习

-3.人工智能产业

-章测试

第三部分:python基础

-第一章:python简介

--1.1python的介绍

--1.2.anaconda的安装

--章测试

-第二章:编码规范

--2.1 python编码规范

--2.2常量和变量

--章测试

-第三章:数据类型

--3.1数据类型概述

--3. 2.数据转换

--3.3数据类型区别

--章测试

-第四章:基本运算

--4.1.基本运算符

--4.2比较运算符

--4.3逻辑运算符

--4.4位运算符

--4.5成员运算符与身份运算符

--4.6运算符的优先级

--章测试

-第五章:程序控制结构

--5.1顺序结构

--5.2条件结构

--5.3循环结构

--5.4跳转结构

--5.5异常处理

--章测试

-第六章:函数、模块与面向对象

--6.1函数的定义与调用

--6.2面向对象

--6.3魔法函数的应用

--6.4模块与包

--章测试

-第七章:文件操作

--7.1文件的打开与读取

--7.2文件的写入

--7.3CSV模块的应用

--章测试

-第八章:python生态库

--8.1第三方库的安装

--8.2标准库-Os库与Sys库

--8.3.标准库-Time库

--8.4标准库-Random库

--8.5标准库-Turtle库

--8.6第三方库-词云库

--8.7第三方库-pyinstaller库

--8.8第三方库-numpy库(上)

--8.9第三方库-numpy库(下)

--8.10第三方库-pandas库

--8.11第三方库-matplotlib库

--章测试

-第九章:TensorFlow基础

--9.1TensorFlow简介

--9.2TensorFlow 2.0的改进

--9.3TensorFlow的数据应用

--9.4 TensorFlow的设备应用

--9.5.TensorFlow中常用操作

--章测试

-第十章:实例分析与实践

--10.1认识回归问题

--10.2房价的预测

--10.3手写数字识别

--10.4卷积神经网络的介绍

--10.5全连接网络的搭建

--10.6卷积神经网络的实现服饰图片的分类

--10.7LeNet的介绍

--章测试

-第十一章:人工智能在自然语言中的应用

--11.1自然语言处理

--11.2命名实体识别技术

--11.3词向量表示

--11.4自然语言处理的挑战及应用

--章测试

10.2房价的预测笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。