大数据分析技术

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

目录

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

标准体重是反映和衡量一个人健康状况的重要标志之一。过和过都不利于健康,也不会给人以健美感。不同体型的大量统计材料表明,反映正常体重较理想和简单地指标,可用身高体重的关系来表示,也就是说,我们可以通过身高和体重数据,对人的肥胖程度进行分类。

任务2:使用支持向量机对人的肥胖程度进行分类(四类)。

如图所示的样本数据中,给定了肥胖程度(过轻、正常、过重、肥胖)的样本数据。根据结果训练模型,用来判定肥胖程度。

                           

  • 步骤一:数据准备,从文件中读取数据,并准备好训练的数据,代码如下:

 

 df= pd.read_csv('hw3.csv',  delimiter=',')

 df['Weight'] = df['Weight'].astype(float64)
 df[
'Height'] = df['Height'].astype(float64)
 
# 对体重判定结果进行数值化处理
 
le = preprocessing.LabelEncoder()
 df[
'Class_2'] = le.fit_transform(df['Class'])
 df.head()

 

 

 

X = df[['Height', 'Weight']]
 Y = df[[
'Class_2']]
 x_train, x_test,y_train, y_test=train_test_split(X,Y,
train_size=0.7,test_size=0.3)

  标签映射结果如图所示。

  • 步骤二:使用SVM对模型进行训练,调用的代码如下: 

 # 建立SVM分类器模型

 params = {'kernel':'linear'}
 classifier = SVC(**
params)
 classifier.fit(x_train, y_train.values.ravel())

 

x_train, x_test,y_train, y_test=train_test_split(X,Y,train_size=0.7,test_size=0.3)
 classifier.fit(x_train, y_train.values.ravel())

  • 步骤三:使用模型进行预测,及模型好坏的分析报告。

 x_min,  x_max = df[['Height']].values.min()  - 1.0,  df[['Height']].values.max() + 1.0

 y_min,  y_max = df[['Weight']].values.min()  - 1.0,  df[['Weight']].values.max() + 1.0
 
step_size  = 0.1
 
x_values,  y_values = np.meshgrid(np.arange(x_min,x_max,step_size),
                                  np.
arange(y_min,y_max,step_size))
 mesh_output = classifier.predict(np.c_[x_values.ravel(),y_values.ravel()])
 mesh_output = mesh_output.reshape(x_values.shape)
 
plt.figure()

 

# 预测值
 
plt.pcolormesh(x_values,y_values,mesh_output,cmap=pltNaN.Paired, alpha=0.5)
 
# 原数据
 
plt.scatter(df[['Height']],df[[  'Weight']], c=df[['Class_2']],  s=80, edgecolors='black',  linewidths=1,  marker='o')
 
plt.title('肥胖判定(SVM线性分类器)')
 
plt.xlabel('身高')
 
plt.ylabel('体重')
 
plt.show()

    运行代码后,可视化结果如图所示



  • 步骤四:对模型进行评估,报告产生代码参考如下: 

 #10分析报告

 from sklearn.metrics  import classification_report
 
print(classification_report(y_test,  classifier.predict(x_test)))

得到的模型评估报告结果如图所示。