数据仓库与数据挖掘实验报告

来源:村官 发布时间:2021-03-05 点击:

  软件学院

 学 生 实 验 报 告

 实验课程

  数据仓库与数据挖掘

 开课时间

  2019

 至

 2020

  学年

 第 二 学期

  年

 级

  2017 级

 专业班

  计科 5 班

 姓

 名

  王帅兵

 学

 号

 20177710541

 总 成 绩

 教师签名

 软件学院制

 实验教学管理基本规范

 实验是培养学生动手能力、分析解决问题能力的重要环节;实验报告是反映实验教学水平与质量的重要依据。为加强实验过程管理,改革实验成绩考核方法,改善实验教学效果,提高学生质量,特制定实验教学管理基本规范。

 1、 每门实验课程一般会包括多个实验项目,除非常简单的验证演示性实验项目可以不写实验报告外,其他实验项目均应按本格式完成实验报告。

 2、 实验报告应由实验准备、实验过程、结果分析三大部分组成。每部分均在实验成绩中占一定比例。各部分成绩的观测点、考核目标、所占比例可参考附表执行。各专业可以根据具体情况,调整考核内容和评分标准。

 3、 学生必须在完成实验预习内容的前提下进行实验。教师要在实验过程中抽查学生预习情况,在学生离开实验室前,检查学生实验操作和记录情况,并在实验报告第七部分教师签字栏签名,以确保实验记录的真实性。

 4、 、 教师应及时评阅学生的实验报告并给出各实验项目成绩,完整保存实验报告。在完成所有实验项目后,教师应按学生姓名将批改好的各实验项目实验报告装订成册,构成该实验课程总报告,按班级交课程承担单位(实验中心或实验室)保管存档。

 5、 、 实验课程成绩按其类型采取百分制或优、良、中、及格和不及格五级评定。

 附表:

 实验考核参考内容及标准

 观测点 考核目标 成绩组成 实验准备 1. 预习报告 2. 提问 3. 对于设计型实验,着重考查设计方案的科学性、可行性和创新性 对实验目的和基本原理的认识程度,对实验方案的设计能力 20% 实验过程 1. 是否按时参加实验 2. 对实验过程的熟悉程度 3. 对基本操作的规范程度 4. 对突发事件的应急处理能力 5. 实验原始记录的完整程度 6. 同学之间的团结协作精神 着重考查学生的实验态度、基本操作技能;严谨的治学态度、团结协作精神 30% 结果分析 1. 所分析结果是否用原始记录数据 2. 计算结果或软件运行结果是否正确 3. 实验结果分析是否合理 4. 对于综合实验,各项内容之间是否有分析、比较与判断等 考查学生对实验数据处理和现象分析的能力;对专业知识的综合应用能力;事实求实的精神 50%

 实验一 实验名称 熟悉实验环境

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

  熟悉 python 虚拟环境 Anaconda,熟悉数据挖掘的常用三方库Numpy,sklearn 及可视化工具 matplotlib。

  实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1. 实验平台 计算机、Anaconda

  实 验 准 备

 ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 a Anaconda 安装与使用

  (1)安装:https://www.anaconda.com/download/#windows,访问上述超链接,选择 Anaconda for Windows Installer 中的 Python 3.7 版本,根据系统配置选择 64 位或者 32 位的软件包进行下载。

 (2)conda 管理工具 1)为防止权限错误,请将安装文件拷贝到普通目录并启动安装程序,尽量避免在临时文件目录中进行安装; 2)如果在安装过程中遇到问题,请在安装期间临时禁用防病毒软件,然后在安装结束后重新启用。

  实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1 1 、y Numpy 库的使用

 2 、n sklearn 的使用

 Scikit-learn (简记 sklearn)是当今非常流行的机器学习工具,也是最有名的 Python 机器学习库。Scikit-learn 主要功能包括分类、回归、聚类、数据降维、模型选择和数据预处理六大部分。

 4. matplotlib 的使用 (1)常用 2D 图形

 1) 散点图

 实 验 内 容 及 实 验 步 骤

  (续表)

 2) 绘制线性图 3) 绘制柱状图 4) 绘制饼状图

 实 验 内 容 及 实 验 步 骤

  (2)常用 3D 图形

 1)绘制 3D 散点图

 2) 绘制 3D 曲线图

 实 验 内 容 及 实 验 步 骤 3) 绘制 3D 曲面图

 4) 绘制 3D 柱状图

  实 验 结 果 及 分 析

  (对实验结果进行分析、总结实验心得体会以及改进建议)

 1. NumPy 主要用来存储和处理大型矩阵,比 Python 自身的嵌套列表(nested list structure)结构更加高效。

 2. Scikit-learn 主要功能包括分类、回归、聚类、数据降维、模型选择和数据预处理六大部分。

 3.Matplotlib 是一个基于 Python 语言实现的类 Matlab 的绘图工具库,其绘图功能非常完善。

 教 师 评 语 (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验二 实验名称 认识数据 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 1.掌握数据属性类型,掌握数据的基本统计描述以及数据的邻近性度量。

 2.掌握数据分析手段和方法 3.实现数据的可视化

 实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1. 实验平台

 计算机、Anaconda 2. 实验数据

 鸢尾花数据集:Iris.csv

  实 验 准 备

 ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 1. 下载鸢尾花数据集 iris.csv 2. 四分位数(Quartile)也称四分位点,是指在统计学中把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值。

 3. 盒图由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1、使用 Numpy,分析 Iris.csv 数据集中每个属性的中心趋势以及散布(包括均值、众数、中位数、极差、四分数、四分位极差,盒图)。

 均值

  众数

  中位数

  极差

 四分数

  四分位极差

 实 验 内 容 及 实 验 步 骤

  (续表)

 盒图

 2、通过直方图分析 Iris 各个属性的分布情况,选择其中的两个或多个属性,分析这两个属性之间的关系。

 实 验 内 容 及 实 验 步 骤

 选择 petal_length 和 petal_width。

 可以看出两个属性基本呈现出线性关系。

 3、选择 20 个样本,计算 Iris 数据集中的不同样本之间的距离以及规格化后不同样本之间的距离,对比规格化前后距离的变化情况。

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

  花萼的宽度和长度之间的相关性非常低, 而花瓣的宽度和长度之间的相关性非常高。

 教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价

 教师签名:

  年

  月

  日

 实验三 实验名称 数据预处理

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

  掌握数据预处理过程,掌握数据预处理相关方法 掌握数据清洗相关方法,包括属性的选择和处理,选择属性

 实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Anaconda 2 2 、实验数据 新冠肺炎数据

  实 验 准 备

 ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 1. 热力图是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。

 2. 分箱通过将数据分布到箱中,并用箱中的平均值或中值替换箱中的每个值,可以将属性值离散化。

 3. 3-4-5 规则常被用来将数值数据(连续型数据)划分为相对一致、更自然的区间, 规则的划分步骤:

 (1) 如果一个区间最高有效位上包含 3,6,7 或 9 个 不同的值,就将该区间划分为 3个等宽子区间; (为 7 的话,划分成 2,3,2 的宽度比例) ; (2) 如果一个区间最高有效位上包含 2,4,或 8 个不 同的值,就将该区间划分为 4 个等宽子区间; (3) 如果一个区间最高有效位上包含 1,5,或 10 个不同的值,就将该区间划分为 5 个等宽子区间;

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1、分析新冠肺炎与地理位置间的相关关系

  实 验 内 容 及 实 验 步 骤

  由上图可知, 湖北省确诊人数最多。

 2、对一个省份的在某一天的感染人数进行概念分层,并给出各层的所对应的概念。

  实 验 内 容 及 实 验 步 骤

 以累积确诊人数划分: 第一层 (0,280) 第二层 (0,5),(70,140),(140,210),(210,280) 第三层 (0,20), (20,40), (40,60) (70,84), (84,98), (98,112), (112,126), (126,140) (140,154), (154,168), (168,182), (182,196),(196,210) (210,230), (230,260), (260, 280)

 3、选择一个省份,分析感染人数、治愈人数随时间变化的趋势。

 确诊和治愈人数随时间变化曲线图:

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

 通过热力图可以明显的看出来湖北地区患病情况最严重。

 通过画出确诊和治愈人数随时间变化曲线图,可以看出确诊人数大概从1 月底开始爆发,并在 2 月中旬达到顶峰,在三月初确诊人数和和治愈人数相当,疫情已经被控制住。

  教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验四 实验名称 基于关联规则的频繁模式发掘

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 通过一个已有的训练数据集,观察训练集中的实例,进行关联数据挖掘,更好地理解和掌握关联规则算法的基本原理,使用 Aprior 挖掘频繁模式。

  实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 文件名:(sample)sam_tianchi_mum_baby_trade_history.csv 数据说明网址:

 https://tianchi.aliyun.com/dataset/dataDetail?dataId=45 用户为之购买商品的婴儿年龄、性别间的频繁模式

  实 验 准 备

 ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 1. 频繁项集:经常出现在一块的物品的集合 2. 关联规则:暗示两种物品之间可能存在很强的关系 3. 支持度:一个项集的支持度被定义为数据集中包含该项集的记录所占的比例,因此可以定义一个最小支持度,只保留最小支持度的项集。

 4. 置信度:针对如{A}->{B}这样的关联规则来定义的。计算为支持度{A,B}/支持度{A}。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1.数据预处理

  2.Python 实现 Aprior 算法

  实 验 内 容 及 实 验 步 骤

  3.使用 Aprior 算法进行频繁模式挖掘

 实 验 内 容 及 实 验 步 骤

 (对实验结果进行分析、总结实验心得体会以及改进建议)

 最终生成的婴儿年龄和性别之间的频繁项集:

 Rules frozenset({"age(436-1000days)"}) => frozenset({"boy"}) "s conf:

 1.0 frozenset({"age(0-121days)"}) => frozenset({"boy"}) "s conf:

 1.0 frozenset({"age(>1000days)"}) => frozenset({"boy"}) "s conf:

 1.0 frozenset({"age(122-435days)"}) => frozenset({"boy"}) "s conf:

 1.0

 Rules frozenset({"age(436-1000days)"}) => frozenset({"girl"}) "s conf:

 1.0 frozenset({"age(>1000days)"}) => frozenset({"girl"}) "s conf:

 1.0 frozenset({"age(122-435days)"}) => frozenset({"girl"}) "s conf:

 1.0 frozenset({"age(0-121days)"}) => frozenset({"girl"}) "s conf:

 1.0

  教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验五 实验名称 基于关联规则-FP 树

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 通过一个已有的训练数据集,观察训练集中的实例,进行关联数据挖掘,更好地理解和掌握关联规则算法的基本原理,使用 FP 树挖掘频繁模式。

 实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 文件名:(sample)sam_tianchi_mum_baby_trade_history.csv 数据说明网址:

 https://tianchi.aliyun.com/dataset/dataDetail?dataId=45 用户购买商品与婴儿年龄、性别间的频繁模式

  实 验 准 备

 ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 1.FP-tree 是一种特殊的前缀树,由频繁项头表和项前缀树构成。

 2.FP-tree 采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树,但仍保留项集关联信息。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1.数据预处理

 2.使用 Python 实现 FP 树

 实 验 内 容 及 实 验 步 骤

  (续表)

 4. 使用 FP-tree 进行频繁模式挖掘

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

 最终生成的婴儿年龄和性别之间的频繁项集:

 Rules frozenset({"age(436-1000days)"}) => frozenset({"boy"}) "s conf:

 1.0 frozenset({"age(0-121days)"}) => frozenset({"boy"}) "s conf:

 1.0 frozenset({"age(>1000days)"}) => frozenset({"boy"}) "s conf:

 1.0 frozenset({"age(122-435days)"}) => frozenset({"boy"}) "s conf:

 1.0

 Rules frozenset({"age(436-1000days)"}) => frozenset({"girl"}) "s conf:

 1.0 frozenset({"age(>1000days)"}) => frozenset({"girl"}) "s conf:

 1.0 frozenset({"age(122-435days)"}) => frozenset({"girl"}) "s conf:

 1.0 frozenset({"age(0-121days)"}) => frozenset({"girl"}) "s conf:

 1.0

  教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验六 实验名称 决策树算法-ID3

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 1.掌握 ID3 的原理 2.使用 python 实现 ID3 算法。

 3.使用 ID3 算法实现心脏病的分类

 实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 processed.cleveland.data UCI 公开数据集-heart disease,属性信息如下: #3 (age) #4(sex) #9(cp) #10(trestbps) #12 (chol) #16(fbs) #19(restecg) #32(thalach) #38(exang) #40(oldpeak) #41(slope) #44(ca) #51(thal) #58(num) (the predicted attribute) 数据集参考网址:https://archive.ics.uci.edu/ml/datasets/Heart+Disease

 实 验 准 备

  ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 1.熵:表示随机变量的不确定性。

 2.条件熵:在一个条件下,随机变量的不确定性。

 3.信息增益:熵 - 条件熵

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1.创建数据集

  2.计算信息熵和条件熵

 实 验 内 容 及 实 验 步 骤

 3.计算信息增益等

 4.计算叶节点和树的层数

 5.创建 FP-tree

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

 绘制 FP-tree

  ID3 算法是一种贪心算法,以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美分类训练样例。

  教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验七 实验名称 朴素贝叶斯算法

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 1.掌握朴素贝叶斯算法的原理及应用。

 2.使用 python 实现朴素贝叶斯算法。

 3.使用朴素贝叶斯算法实现心脏病的分类

  实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 processed.cleveland.data UCI 公开数据集-heart disease,属性信息如下: #3 (age) #4(sex) #9(cp) #10(trestbps) #12 (chol) #16(fbs) #19(restecg) #32(thalach) #38(exang) #40(oldpeak) #41(slope) #44(ca) #51(thal) #58(num) (the predicted attribute) 数据集参考网址:https://archive.ics.uci.edu/ml/datasets/Heart+Disease

 实 验 准 备

  ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 1.先验概率是通过经验来判断事情发生的概率。

 2.后验概率就是发生结果之后,推测原因的概率。

 3.条件概率是指事件 A 在另外一个事件 B 已经发生条件下的发生概率,表示为 P(A|B)。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1.python 实现朴素贝叶斯算法

  2.利用朴素贝叶斯预测样本

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

 将数据集的 90%用于训练模型,10%用于测试模型。

 预测= [0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 1 0 0 3 0 0 0 0 0 0 0 1 0 0 0] 标签= [0 0 0 0 0 1 2 1 0 0 2 3 0 0 2 0 1 0 0 0 1 2 0 4 3 0 0 4 0 0 3] 预测准确率= 54.84% 目前实现的朴素贝叶斯准确率还比较低,需要较大的改进。

  教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验八 实验名称 分类算法性能评估

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

 (给出本次实验要求掌握的知识点、技能等)

 掌握分类算法性能评估指标

 实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 processed.cleveland.data UCI 公开数据集-heart disease,属性信息如下: #3 (age) #4(sex) #9(cp) #10(trestbps) #12 (chol) #16(fbs) #19(restecg) #32(thalach) #38(exang) #40(oldpeak) #41(slope) #44(ca) #51(thal) #58(num) (the predicted attribute) 数据集参考网址:https://archive.ics.uci.edu/ml/datasets/Heart+Disease

 实 验 准 备

 ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 1. F-score 值,F1 值为算数平均数除以几何平均数,且越大越好,将Precision 和 Recall 的上述公式带入会发现,当 F1 值小时,True Positive相对增加,而 false 相对减少,即 Precision 和 Recall 都相对增加,即 F1对 Precision 和 Recall 都进行了加权。

 2. 接受者操作特性曲线是指在特定刺激条件下,以被试在不同判断标准下所得的虚报概率 P(y/N)为横坐标,以击中概率 P(y/SN)为纵坐标,画得的各点的连线。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1. 数据标准化

 2.使用决策树预测

 实 验 内 容 及 实 验 步 骤

  3. 决策树模型的 F1-score,准确率,召回率等

 4.贝叶斯预测准确率

  5.绘制贝叶斯模型的 ROC 曲线

 实 验 结 果 及 分 析

 实验结果如下:

 教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验九 实验名称 KNN 算法实现

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 1.掌握 KNN 算法基本原理 2.使用 python 实现 KNN; 3.测试不同的 k 值下 KNN 算法分类效果;

 实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 processed.cleveland.data UCI 公开数据集-heart disease,属性信息如下: #3 (age) #4(sex) #9(cp) #10(trestbps) #12 (chol) #16(fbs) #19(restecg) #32(thalach) #38(exang) #40(oldpeak) #41(slope) #44(ca) #51(thal) #58(num) (the predicted attribute) 数据集参考网址:https://archive.ics.uci.edu/ml/datasets/Heart+Disease

 实 验 准 备

  ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 KNN 分类算法的分类预测过程十分简单并容易理解:对于一个需要预测的输入向量 x,我们只需要在训练数据集中寻找 k 个与向量 x 最近的向量的集合,然后把 x 的类别预测为这 k 个样本中类别数最多的那一类。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1. python 实现 KNN 算法

 2.读取数据,划分训练数据集和测试训练集

 实 验 内 容 及 实 验 步 骤

  (续表)

 1.搜索最好的 K 值

  2.用 KNN 算法预测测试数据集

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

 从图中可以看出当 k 取 7 时分类效果最差,k 取 16 时分类效果最好。

 当数据量非常大时(如几十亿条记录),可以构造 KD 树,利用 KD 树 可以省去对大部分数据点的搜索,从而减少搜索的计算量。

  教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验十 实验名称 Kmeans 算法实现

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 1.掌握 KNN 算法基本原理 2.使用 python 实现 Kmeans; 3.使用 Kmeans 算法进行心脏病数据的聚类

  实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 processed.cleveland.data UCI 公开数据集-heart disease,属性信息如下: #3 (age) #4(sex) #9(cp) #10(trestbps) #12 (chol) #16(fbs) #19(restecg) #32(thalach) #38(exang) #40(oldpeak) #41(slope) #44(ca) #51(thal) #58(num) (the predicted attribute) 数据集参考网址:https://archive.ics.uci.edu/ml/datasets/Heart+Disease

 实 验 准 备

  ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 k 均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为 K 组,则随机选取 K 个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1.python 实现 Kmeans 算法

 实 验 内 容 及 实 验 步 骤

  (续表)

 2.使用 Kmeans 进行聚类

 3.选择两个属性绘制聚类后的效果

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

 1.K- -S MEANS 算法的优缺点

  优点:理解简单,执行速度快,只需要指定 n_clusters 参数就可以了,适合常规数据集。

 缺点:没有标签值,模型效果难以评估,所以很难确定分多少簇效果较好。

 复杂度与样本呈线性关系,很难发现任意形状的簇。

 2. 如何对 s kmeans 算法进行并行化执行以提高算法效率

 分布式文件系统基础下的 MapReduce 编程模型实现 KMeans 聚类算法 运行效果:从节点增加时的总体速度提升,平均速度下降,数据量增大等多个条件下对算法进行实验,算法表现良好。

 教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验十 一 实验名称 基于密度的聚类-DBSCAN

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 1.掌握 DBSCAN 算法基本原理 2.使用 python 实现 DBSCAN; 3.测试 minpoints 及 epsilon 对 DBSCAN 算法的影响

  实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 processed.cleveland.data UCI 公开数据集-heart disease,属性信息如下: #3 (age) #4(sex) #9(cp) #10(trestbps) #12 (chol) #16(fbs) #19(restecg) #32(thalach) #38(exang) #40(oldpeak) #41(slope) #44(ca) #51(thal) #58(num) (the predicted attribute) 数据集参考网址:https://archive.ics.uci.edu/ml/datasets/Heart+Disease

 实 验 准 备

  ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。

 与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1.python 实现 DBSCAN 算法

 实 验 内 容 及 实 验 步 骤

  (续表)

 2. 使用 DBSCAN 算法进行聚类

  3. 选择三个属性绘制聚类效果

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

  1. DBSCAN 算法具有以下特点:

 基于密度,对远离密度核心的噪声点鲁棒 无需知道聚类簇的数量 可以发现任意形状的聚类簇 DBSCAN 通常适合于对较低维度数据进行聚类分析。

 2.DBSCAN 的 2 个算法参数:邻域半径 R 和最少点数目 minpoints。

 这两个算法参数实际可以刻画什么叫密集——当邻域半径 R 内的点的个数大于最少点数目 minpoints 时,就是密集。

 3.DBSCAN 的 3 种点的类别:核心点,边界点和噪声点。

 邻域半径 R 内样本点的数量大于等于 minpoints 的点叫做核心点。不属于核心点但在某个核心点的邻域内的点叫做边界点。既不是核心点也不是边界点的是噪声点。

 4.DBSCAN 的 4 种点的关系:密度直达,密度可达,密度相连,非密度相连。

 教 师 评 语

  (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

 实验十 二 实验名称 聚类质量评估

 指导老师 杨聪, 高军亮 实验教室

 实验时间

 实验成绩

 实 验 目 的

  (给出本次实验要求掌握的知识点、技能等)

 1.掌握聚类质量评估方法,理解聚类质量评估原理及作用 2.选择一个属性,使用霍普金斯统计量判断该属性是否是均匀分布; 3.估计数据集的簇数 4.使用 k-means 算法对数据及进行聚类,并计算聚类结果的轮廓系数

 实 验 环 境

 (列出本次实验所使用的平台、器材和相关软件等)

 1 1 、实验平台

 计算机、Python、Anaconda 2 2 、实验数据

 processed.cleveland.data UCI 公开数据集-heart disease,属性信息如下: #3 (age) #4(sex) #9(cp) #10(trestbps) #12 (chol) #16(fbs) #19(restecg) #32(thalach) #38(exang) #40(oldpeak) #41(slope) #44(ca) #51(thal) #58(num) (the predicted attribute) 数据集参考网址:https://archive.ics.uci.edu/ml/datasets/Heart+Disease

 实 验 准 备

  ( 硬件相关实验给出本实验实验原理;软件相关实验给出本实验涉及的相关知识点 )

 1. 霍普金斯统计量:判断数据在空间上的随机性。如果样本接近随机分布,即 H 的值接近于 0.5,如果聚类趋势明显,则随机生成的样本点距离应该远大于实际样本点的距离,H 值接近于 1。

 2. 轮廓系数(Silhouette Coefficient),是聚类效果好坏的一种评价方式。它结合内聚度和分离度两种因素。可以用来在相同原始数据的基础上用来评价不同算法、或者算法不同运行方式对聚类结果所产生的影响。

 实 验 内 容 及 实 验 步 骤

  ( 给出实验内容具体描述;硬件相关实验给出实验步骤和实验原始记录;软件相关实验给出程序清单、调试过程出现的问题以及解决方法、运行结果等)

 1. 首先使用一种聚类算法对数据进行聚类,在此我选用了实验十中的 Kmeans 算法。所以代码不再赘述。

 实 验 内 容 及 实 验 步 骤

  (续表)

 实 验 结 果 及 分 析

 (对实验结果进行分析、总结实验心得体会以及改进建议)

  1. 选择数据的 trestbps 属性,计算霍普金斯统计量,数值为 0.5,可以知道该属性随机分布。

 2. 通过肘部法可以明显看出,该数据的簇数大约为 3。

  教 师 评 语

 (教师对该生的实验准备、实验步骤、实验结果分析以及实验态度给出综合评价)

 教师签名:

  年

  月

  日

推荐访问:数据仓库 数据挖掘 实验
上一篇:新苏教版四年级语文下册期末总复习
下一篇:2016年普通高等学校招生全国统一考试(理数3)

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有