大数据分析技术

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

目录

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

背景知识

目前,机器学习在各行各业应用广泛,特别是计算机视觉、语音识别、语言翻译和健康医疗等领域,出现了很多应用于机器学习的第三方库。其中,Google的TensorFlow引擎提供了一种解决机器学习问题的高效方法。TensorFlow™是一个采用数据流图(Data Flow Graph),用于数值计算的开源软件库。TensorFlow具有灵活的架构,可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU)、服务器、移动设备等等。TensorFlow最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来用于机器学习和深度神经网络方面的研究。鉴于这个系统的通用性,它也可广泛用于其他计算领域。

                             


Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,即用“结点”(node)和“线”(edge)的有向图来描述数学计算。节点在图中表示数学操作,但也可以表示数据输入(feedin)的起点/输出(push out)的终点。图中的线则表示在节点间相互联系的多维数据数组,即张量(tensor),描述了计算之间的依赖关系。张量从图中流过的直观影像是这个工具取名为TensorFlow的原因。当输入端的所有张量准备好,节点即可被分配到各种计算设备完成异步、并行运算。

TensorFlow的基础架构如图所示,具有以下特征:

(1)高度的灵活性:TensorFlow不是一个严格的神经网络。只要一个计算可以表示为一个数据流图,就可以使用TensorFlow来构建图,描写驱动计算的内部循环。TensorFlow提供了有用的工具来帮助组装“子图”(常用于神经网络),当然用户也可以自己在TensorFlow基础上写自己的“上层”。如果想改进底层数据操作,也可以自己动手编写C++代码丰富底层的操作。

(2)真正的可移植性:TensorFlow可以在CPU和GPU上运行,也可以运行在台式机、服务器、手机移动设备等。

(3)将科研和产品联系在一起:过去如果要将科研中的机器学习算法应用到产品中,需要大量的代码重写工作。科学家可以用TensorFlow尝试新的算法,产品团队则用TensorFlow来训练和使用计算模型,并直接提供给在线用户。使用TensorFlow可以让应用型研究者将想法迅速运用到产品中,也可以让学术性研究者更直接地彼此分享代码,从而提高科研产出率。

(4)自动求微分:基于梯度的机器学习算法会受益于TensorFlow自动求微分的能力。作为TensorFlow用户,通过定义预测模型的结构,可将结构和目标函数(objective function)结合,并添加数据。TensorFlow会自动计算相关的微分导数。

(5)多语言支持:TensorFlow支持C++和Python,使用者可以直接写Python/C++程序,也可以用交互式的iPython界面,并将笔记、代码、可视化等有条理地归置好。

(6)性能最优化: TensorFlow支持线程、队列、异步操作等,通过自由地将TensorFlow图中的计算元素分配到不同设备上,发挥硬件的计算潜能。同时,TensorFlow可以管理这些不同副本。

TensorFlow还没竣工,它可以被进一步扩展。有致力于相关研发的人都可以直接贡献源代码,或者提供反馈,来建立一个活跃的开源社区,推动代码库的未来发展。

机器学习是未来新产品和新技术的一个关键部分。在这一个领域的研究是全球性的,并且发展很快,却缺少一个标准化的工具,Google就是通过创造一个开放的标准,促进交流研究想法和将机器学习算法产品化。在本项目中,我们将使用Google的TensorFlow来完成神经网络的初步使用。进一步地深入学习与拓展,完成深度学习的开发、应用研究需要读者在应用实战中加强。

任务简介