77范文网 - 专业文章范例文档资料分享平台

数据挖掘实验指导书(2)

来源:网络收集 时间:2018-12-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

长沙学院信息与计算科学系 数据挖掘实验指导书

实验二 DBSCAN算法实现

一、实验目的

要求掌握DBSCAN算法的聚类原理、了解DBSCAN算法的执行过程。在此基础上,利用DBSCAN算法对给定样本数据实现聚类过程。

实验类型:综合 计划课间:4学时

二、实验内容

1、了解DBSCAN算法的聚类原理; 2、了解DBSCAN算法的执行过程; 3、编程实现DBSCAN算法; 4、对给定样本数据实现聚类过程

三、实验方法

3.1、DBSCAN算法的基本概念

? 对象的ε-邻域:给定对象在半径ε内的区域;

? 核心对象:若一个对象ε-邻域至少包含最小数目MinPts个对象,则称该对

象为核心对象;

? 直接密度可达:给定一个对象集合D,若p是在q的ε-邻域内,而q是一个核

心对象,则称对象p从对象q出发是直接密度可达的;

? 密度可达:若存在一个对象链p1,p2,?,pn,p1=q,pn=p,对pi∈D,pi+1是从pi

关于ε和MinPts直接密度可达的,则称对象p是从对象q关于ε和MinPts是密度可达的;

? 密度相连:若对象集合D中存在一个对象o,使得对象p和q是从o关于ε和

MinPts是密度可达的,则对象p和q是关于ε和MinPts密度相连的; ? 噪声:一个基于密度的簇是基于密度可达性的最大的密度相连对象的集合,

不包含在任何簇中的对象被认为是噪声

3.2、实现的基本思想

通过检查数据集中每个对象的ε-邻域来寻找聚类。如一个点p的ε-邻域包含多于MinPts个对象,则创建一个p作为核心对象的新簇。然后,DBSCAN寻找从这些核心对象直接密度可达的对象,这个过程可能涉及一些密度可达簇的合并,当没有新的点可以被添加到任何簇时,聚类过程结束。

第6页

长沙学院信息与计算科学系 数据挖掘实验指导书

3.3 算法描述

输入:包含n个对象的数据库,半径,最小数目MinPts; 输出:所有生成的簇,达到密度要求 过程: Repeat

从数据库中抽取一个未处理的点;

IF 抽出的点是核心点 THEN 找出所有从该店密度可达的对象,形成一个簇; ELSE 抽出的点是边缘点(非核心对象),跳出本次循环,寻找下一点; Until 所有点都被处理

四、实验步骤 4.1 数据结构的分析 Struct List

{Int data[TOTALPOINT]; Int head=0; Int tail=-1;} List ClusterList; Struct Node

{ int Attribute1; int Attribute2} Node DataBase[TOTALPOINT];

Boolean Neighbor[TOTALPOINT][TOTALPOINT]; Int ClusterNo[TOTALPOINT];

4.2 实验数据 P186 表5-8

4.3 计算临近

For (i=0;i

For (j=0;j

If (dist(DataBase[i],DataBase[i])<ε then Neighbor[i][j]=true;Neighbor[j][i]=true;

第7页

长沙学院信息与计算科学系 数据挖掘实验指导书

4.4 聚类划分 CurrentClusterNO=0; For (i=0;i

NeighborPointsNum=0;

for (j=0;j

if (Neighbor[i][j]==true)NeighborPointsNum++; if (NeighborPointsNum)>=MinPts {

// 记录邻居中已被划分的簇号 ClusterList.tail=-1; ClusterList.head=0; For (j=0;j

If (Neighbor[i][j]==true) &&(ClusterNo[j]>0)

Then {ClusterList.tail++;

ClusterList.data[tail]=ClusterNo[j]} // 当前核心对象的邻居对象划分为一簇 For (j=0;j

ClusterNo[j]=CurrentClusterNO;

// 将多个簇合并

While ClusterList.head<=ClusterList.tail { for (j=0;j

If (ClusterNo[j]==ClusterList.data[head]) ClusterNo[j]=CurrentClusterNO;

ClusterList.head++; } } }

4.5 聚类结果输出

For (i=-1;i

第8页

长沙学院信息与计算科学系 数据挖掘实验指导书

{

Printf(“\\n输出第%d簇的对象:”,i); For (j=0;j

If (ClusterNo[j]=i) printf(“%d\\t”,j); }

五、注意事项 5.1. 噪声数据的处理

5.2 已划分的类存在直接密度可达时的相关类数据的合并

第9页

长沙学院信息与计算科学系 数据挖掘实验指导书

实验三 ID3算法实现

一、实验目的

通过编程实现决策树算法,信息增益的计算、数据子集划分、决策树的构建过程。加深对相关算法的理解过程。 实验类型:验证 计划课间:4学时

二、实验内容

1、分析决策树算法的实现流程;

2、分析信息增益的计算、数据子集划分、决策树的构建过程; 3、根据算法描述编程实现算法,调试运行; 4、对课后P161的第10题进行验算,得到分析结果。

三、实验方法

算法描述:

以代表训练样本的单个结点开始建树;

若样本都在同一个类,则该结点成为树叶,并用该类标记;

否则,算法使用信息增益作为启发信息,选择能够最好地将样本分类的属性; 对测试属性的每个已知值,创建一个分支,并据此划分样本; 算法使用同样的过程,递归形成每个划分上的样本决策树 递归划分步骤,当下列条件之一成立时停止: 给定结点的所有样本属于同一类;

没有剩余属性可以进一步划分样本,在此情况下,采用多数表决进行

四、实验步骤

1、算法实现过程中需要使用的数据结构描述: Struct

{int Attrib_Col; // 当前节点对应属性 int Value; // 对应边值 Tree_Node* Left_Node; // 子树

Tree_Node* Right_Node // 同层其他节点 Boolean IsLeaf; // 是否叶子节点 int ClassNo; // 对应分类标号 }Tree_Node;

第10页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据挖掘实验指导书(2)在线全文阅读。

数据挖掘实验指导书(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/384158.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: