大数据分析技术

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

目录

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

什么是KNN

邻近或K最近邻(K-NearestNeighbor,KNN)分类算法是基于实例的分类(instance-based learning),属于惰性学习(lazy learning),是数据挖掘分类技术中最简单地方法之一。KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的K个最相似(即在特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。KNN没有明显的训练学习过程,不同K值的选择都会对KNN算法的结果造成重大影响。KNN算法的结果很大程度取决于K的选择,其算法过程描述为:

(1)计算测试数据与各个训练数据之间的距离;

(2)按照距离的递增关系进行排序;

(3)选取距离最小的K个点;

(4)确定前K个点所在类别的出现频率;

(5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。

KNN可以应用很多情境中,比如:如果要预测某一套房子的单价,就参考最相似的K个房子的价格,比如相似特征可以是距离最近、户型最相似等。

任务1:下面以鸢尾花的公开数据集为例,说明sklearn中KNN的使用。

要求以iris数据集为分析对象,根据已知的花萼长度、花萼宽度、花瓣长度和花瓣宽度,使用KNN来预测对应的鸢尾花品种。以下过程以数据读取、数据分析及可视化来说明sklearn中KNN的使用过程。

  • 步骤一:读取数据,代码如下:

 #coding:utf-8

 import pandas as pd
 
 df= pd.read_csv(
'iris.csv', delimiter=',')
 df.head()

  • 步骤二:读取准备(标签映射),代码如下:

 

 from sklearnimport  preprocessing

 # 对类别进行数值化处理
 
le = preprocessing.LabelEncoder()
 df[
'Cluster'] = le.fit_transform(df['Species'])
 
 df.head()

数据预处理结果如图所示。


  • 步骤三:原数据可视化展现,代码如下:

 import numpyas  np

 import matplotlib.pyplotas  plt
 
plt.rcParams['font.sans-serif']  = ['SimHei']
 
plt.rcParams['axes.unicode_minus']  = False
 
 
X = df[['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm']]
 Y = df[[
'Cluster','Species']]
 
 
# 可视化展现
 
grr=pd.plotting.scatter_matrix(X,c=np.squeeze(Y[['Cluster']]),figsize=(8,8),marker="o",hist_kwds={'bins':20},s=60,alpha=.8,cmap=pltNaN.Paired)
 
plt.show()

    可视化结果,如图所示。



  • 步骤四:数据集切分,代码如下:

 from sklearn.model_selection  import train_test_split

 
 x_train, x_test,y_train, y_test=train_test_split(X,Y)

  • 步骤五:使用KNN建立模型并训练,代码如下:

 from sklearn.neighbors  import KNeighborsClassifier
 

# KNN近邻分类预测
 
knn = KNeighborsClassifier(n_neighbors=5)
 
knn.fit(x_train,np.squeeze(y_train[['Cluster']]))
 y_
pred=knn.predict(x_test)

  • 步骤六:对模型进行评估,代码如下:

 y_pred=knn.predict(x_test)

 
 
# 模型评估结果
 
print("预测准确度:{:.2f}".format(knn.score(x_test,y_test[['Cluster']])))
 
print(pd.crosstab(y_test['Cluster'],  y_pred, rownames=['Actual  Values'], colnames=['Prediction']))

上述代码中对模型进行了简单评估,其预测准确度为0.97,具体显示结果如图所示。