大数据分析技术

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

目录

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

任务2:使用循环神经网络RNN进行行为识别。

  • 步骤一:设置参数。

 

epochs = 30   # 训练次数
 
batch_size = 16 # 每个批次大小
 
n_hidden = 16  # 隐层单元个数
 
n_classes = 6   # 类别个数
 
timesteps = len(X_train[0])
 input_dim =
len(X_train[0][0])

 
  • 步骤二:定义RNN模型。

 

from  keras.models  import  Sequential
 
from  keras.layers  import  LSTM
 
from  keras.layers.core  import  Dense,  Dropout
 model = Sequential()
 model.add(LSTM(n_hidden,
input_shape=(timesteps, input_dim)))
 model.add(Dense(n_classes,
activation='softmax'))
 model.compile(
loss='categorical_crossentropy',
              
optimizer='rmsprop',
              
metrics=['accuracy'])

 
  • 步骤三:模型训练,参考代码如下:

 

model.fit(X_train,
           Y_train,
          
batch_size=batch_size,
          
validation_data=(X_test,  Y_test),
          
epochs=epochs)

 

运行过程数据如下所示:


  •  步骤四:使用上述定义的模型,对测试数据进行模型评估,参考代码如下:

 

scores = model.evaluate(X_test,Y_test)
 
print(scores[1])

 

结果显示:

    同样,我们也可以使用混淆矩阵来查看具体情况,参考代码如下:可以看到,模型的预测准确率约为89.89%左右,与CNN相差不多。通过设计不同的结构,可以得到更好的结果。尝试修改结构与参数设计,得到更好的结果。

 

predicts = model.predict(X_test)
 ACTIVITIES = {
0: '',1:  '上楼',2:  '下楼',3:  '',4:  '',5:  ''}
 
def confusion_matrix(Y_true, Y_pred):
     Y_true = pd.Series([ACTIVITIES[y]
for  y in np.argmax(Y_true,  axis=1)])
     Y_pred = pd.Series([ACTIVITIES[y]
for  y in np.argmax(Y_pred,  axis=1)])
    
return  pd.crosstab(Y_true, Y_pred, rownames=['True'],  colnames=['Pred'])
 
print(confusion_matrix(Y_test,predicts))

 

运行结果类似于下表所示的结果。