直方图进行数据离散化实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验题目: 直方图进行数据离散化 1 实验目的

直方图使用分箱来近似数据分布,是数据规约的一种形式。通过本实验,需要掌握不同直

方图的数学原理和构造方法。同时,掌握使用不同直方图对数据进行离散化的原理和方法。

最后,利用实验数据实现一种直方图并进行评估。

2 实验步骤

2.1 算法原理

首先,假设有N 个自然数的集合U={x | x ∈N },其中最大值为max N 。

(1)等宽度直方图

ﻩ对数据进行分箱。假设按等宽度的方法进行分箱(宽度w=1),则对于N 个数据,按其值i

v 分别放入到相应的箱中,箱子的数目max K N =。设每个箱中的统计数据为(1,2...,)i c i N =,

按照坐标值/频率对(/i i c v )表示在二维坐标上,则可以得到该组数据的单桶直方图。其

中,

i c N =∑。 一般情况下,为了进一步压缩数据,通常进行数据分箱时,每一个桶代表的是连续的属

性值,即取宽度max (0)w q q N =<<。在这种分箱方法下,分箱数目max /K N q =。则按

照公式

**(1)q j j i i q j c c =-=

∑,其中1,2...,j K =,令max 0,*i c N i q j =<<

所得到的值/频率对((1)~/)j q j qj c -,1,2...,j K =的宽度为q 的直方图,即为常见

的等宽度直方图。

(2)等深度直方图

ﻩ与等宽度直方图相比,等深度直方图仅仅是在创建数据桶时与其不同。等深度直方图的数据

桶的创建思想是:使得每个桶的频率粗略的为常数,即每个桶中包含大致相当的样本数据数

目。

设分箱的数目为K,则对于每一个桶,有max /i c N K =,其中1,2...,i K =。只有在这

种情况下,才满足max /i i P c N =大致相当。所要求的是每一个桶的边界i e ,1,2...,i K =。

ﻩ求边界的过程:首先对该集合U 进行排序(由小到大),由于每桶的数目相等,所以每间隔c

个数据,取一次数据值,即为一个有效的边界值。对于排序后的序列,有*(1)max ,,c i i v i K e N i K

-<⎧=⎨

=⎩。所得到的二维(/)i i P e 值对,即是等深度直方图。 2.2 算法步骤

用户输入数据分桶的数目K,然后按如下步骤计算:

(1)对样本数据进行排序

(2)计算宽度w和c

(2)对数据进行扫描和计算等宽度直方图的数目值i c 和等深度直方图的边界i e

2.3 程序流程图

图1 等宽度直方图流程图

ﻩ在图1中,数据的分桶数目是用户输入的数据,预先由用户设定。样本数据存放在文本文件eggs.txt 中,由程序运行时读入。在实验中,通过对样本数据的考察,计算桶宽度w 的方法是max/10001*1000/w k =+。统计结果存放在数组中,返回统计结果。

相关文档
最新文档