大数据分析技术

陈清华、田启明、施郁文等

目录

  • 课程简介
    • ● 课程简介
  • 环境准备
    • ● Anaconda环境安装与使用
    • ● Pycharm环境安装
    • ● 常用第三方包的安装与配置
  • 项目一 电影数据统计
    • ● 任务简介
    • ● 数据获取
    • ● 数据解析
    • ● 数据分析
    • ● 数据可视化
    • ● 课堂思政:新型冠状病毒疫情分析与可视化
    • ● 课堂思政:中国工匠精神
  • 项目二 电影数据分析(回归)
    • ● 任务简介
    • ● 使用一元线性回归分析电影票房数据
    • ● 使用多项式回归分析电影票房数据
    • ● 使用多元线性回归分析电影票房数据
    • ● 课堂实训:工资分析
  • 项目三 爬取房产租赁数据
    • ● 任务简介
    • ● 电影数据爬取
    • ● 房产租赁数据爬取
    • ● 房产租赁数据统计
    • ● 课后实训:二手房数据爬取
    • ● 课堂思政:疫情数据的爬取与可视化
  • 项目四 房屋租赁数据分析与可视化
    • ● 任务简介
    • ● 使用箱形图展现租赁价格分布特征
    • ● 使用散点图展现房屋面积与租赁价格的关系
    • ● 使用饼图展现不同行政区域的可租赁房源占比
    • ● 使用折线图可视化房间数与租赁价格的关系
    • ● 使用热力图展现地理位置的影响
    • ● 课后实训:二手房数据分析
    • ● 课堂思政:疫情数据分析与可视化
  • 项目五 身高与体重数据分析(分类器)
    • ● 使用身高、体重数据进行性别分类
      • ● 使用逻辑回归进行性别分类
      • ● 使用朴素贝叶斯进行性别分类
      • ● 使用决策树模型进行性别分类
      • ● 使用支持向量机进行性别分类
    • ● 使用支持向量机进行肥胖程度分类
    • ● 课后实训: 身高体重数据分析(分类器)
  • 项目六 鸢尾花分类
    • ● 任务简介
    • ● 使用K近邻对鸢尾花进行分类
    • ● 使用随机森林对鸢尾花进行分类
    • ● 使用神经网络对鸢尾花进行分类
  • 项目七 电影评分数据分析(聚类)
    • ● 任务简介
    • ● 使用BDSCAN确定质心个数
    • ● 使用K-Means对观影用户进行聚类
  • 项目八 人脸检测与人脸识别
    • ● 任务简介
    • ● 图像中的人脸检测
    • ● 视频中的人脸检测
    • ● 图像中的人脸识别
    • ● 视频中的人脸识别
    • ● 课后实训:眼睛与笑脸检测
    • ● 课堂思政:人工智能与弯道超车
  • 项目九 手写数字识别应用
    • ● 任务简介
    • ● 图像数据集准备
    • ● 使支持向量机识别手写数字
    • ● 使用神经网络识别手写数字
    • ● 课后实训:使用不同的机器学习方法识别数字手写体
  • 项目十  深度学习在行为识别中的应用
    • ● 任务简介
    • ● 使用卷积神经网络识别行为
    • ● 使用循环神经网络识别行为
    • ● 课后实训:电影评论数据分析
  • 项目十一 TensorFlow与神经网络
    • ● 任务简介
    • ● 使用单层神经网络预测花瓣宽度
    • ● 设计多层神经网络实现鸢尾花分类
    • ● 课后实训:卷积神经网络的实现与应用
  • 项目综合实训(17级学生案例)
    • ● 综合实训要求
    • ● 确定数据采集目标
    • ● 数据采集与预处理
    • ● 数据统计与分析
    • ● 数据分析与预测
    • ● 数据分类应用
    • ● 17级实训案例:二手车数据获取与市场分析
图像数据集准备

1 MNIST数据集格式

很多的深度学习框架都有以MNIST为数据集的demo,MNIST是很好的手写数字数据集。在网上很容易找到资源,但是下载下来的文件并不是普通的图片格式。在MNIST数据集中,可以看到有如图所示的四个文件。这些文件都是二进制格式。



其中,train-images-idx3-ubyte.gz为训练数据集(Training set images),内容格式如图9.2所示。文件大小约为9.9 MB, 解压后 47 MB, 包含 60000 个样本。每个样本大小为28´28像素。



    下图显示的是文件train-labels-idx1-ubyte.gz的信息。文件大小约为29 KB, 解压后 60 KB,包含 60000 个标签。每一个标签是32位,4个字节大小。



文件t10k-images-idx3-ubyte.gz 中是测试集图像(Test set images),大小为1.6 MB, 解压后 7.8 MB, 包含 10000 个样本;文件t10k-labels-idx1-ubyte.gz中是测试集数据对应的标签(Test set labels)。大小为5KB, 解压后 10 KB, 包含 10000 个标签。

上述文件不转换为图片格式也可以用。但有时,我们希望得到可视化的图片格式,方便我们了解其中的逻辑与对应操作。

2 MNIST数据集转换化为图像

根据上述对数据集的基本介绍,图像与标签是一一对应的。通过解读图像数据文件和标签数据文件,可以获得对应的图像。主要步骤有:

(1)读取二进制文件,参考代码如下:

 

data_buf = open('train-images.idx3-ubyte', 'rb').read() 

 

(2)解析文件内容

Python中可以使用struct中unpack_from方法来获得相应的数据信息。参考代码如下:

 

magic, numImages,  numRows, numColumns  = struct.unpack_from( '>IIII', data_buf, 0)  

 

datas  = struct.unpack_from( '>' +'47040000B', data_buf,  struct.calcsize('>IIII')) 

 

datas  = np.array(datas).astype(np.uint8).reshape( numImages,  1, numRows, numColumns

 

(3)存储为图像文件

将第一个28´28像素大小的内容获取过来,并存储为“mnist_train_1.png”文件,参考代码如下:

 

img  = Image.fromarray(datas[1,  0, 0:28, 0:28])

 

img.save('mnist_train_1.png ')   

 

写出循环语句,对所有样本进行如上处理后,得到的部分结果如图所示。每一个训练样本为一个标准化的手写数字,大小为28´28像素。将这些图像作为输入,输出为其对应的标签“8”进行训练,得到模型。



    测试数据集的处理同上,不再详述。