直方图进行数据离散化实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 =+。统计结果存放在数组中,返回统计结果。