大数据分析技术

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

目录

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

根据需要,按照以下步骤实现爬虫,获取想要的数据。

(1)爬虫撰写与页面解析

核心代码如下:

 

# 指定URL
 
url = "http://***.com/daily/wangpiao?page="  + str(i)
 
# 设定头部信息
 
headers = {
    
'User-Agent':  'Mozilla/5.0 (Windows NT 10.0; WOW64)  AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'}
 
# 读取数据
 
data = requests.get(url, headers=headers)
 data.encoding =
'utf-8'
 
# 使用BeautifulSoup解析网页
 
soup = BeautifulSoup(data.text, "html.parser")
 
# 解析得到电影名
 
name = soup.select("#content  > div.table-responsive > table > tbody > tr > td:nth-child(2)  > a")

 

获取的数据示例如下表所示。其中第一条表示电影《战狼2》在2017年8月5日的票房及其它信息。                                                                      2)跨页信息搜索

由于一条数据记录的信息来源于多个页面,需要从其它页面中搜索对应的评分等数据。示例代码如下:

 

for name,  date, zcc, fc, rc, szl, pj, pfurl in zip(name,  date, zcc, fc, rc, szl, pj, pfurl):
         name1 = name.get_text().encode(
"utf-8")
         dburl1 =
"https://www.***.com/search?cat=1002&q="
        
dburl2  = urllib.quote(name1)
         dburl = dburl1 + dburl2
         dbres = requests.get(dburl,
headers=headers).text
        
# 获得评分
        
dbpf  = re.findall("<span class=\"rating_nums\">(.*?)</span>",  dbres)
 
         url1 =
"http://***.com"
        
a =  re.findall("(.*?)/boxoffice",  pfurl.a['href'])
         purl1 = url1 +
str(a[0])
         res = requests.get(purl1,
headers=headers)
         text = res.content.decode(
"utf-8")
        
# 找到地区
        
dq =  re.findall(u"制作国家.*?\">(.*?)</a>",  text)
        
# 找到导演
        
dy =  re.findall(u"导演:.*?\">(.*?)</a>",  text)

 

获取的票价和评分数据如下表所示。

3)数据存储

将以上获得的数据存储在本地文件中,代码如下:

 

# 数据存储
 
header = ['name', 'date',  'pf', 'zcc',  'rc', 'szl',  "pj", "fc",  "dbpf", "dq",  "dy"]
 fp =
open('result6.csv',  'w+')
 f_csv = csv.DictWriter(fp, header)
 f_csv.writeheader()
 f_csv.writerows(
list)