




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【数据挖掘课程设计】-3-4-5规则划分目 录一 实 验 目 的-3二 实 验 内 容-3三 实 验 要 求-3四 实 验 准 备-3五 实 验 步 骤-4六 功 能 代 码-5七 实 验 结 果-9八 实 验 心 得-10一 实验目的1. 加强对3-4-5规则划分算法的了解2. 加强对java语言的理解与动手操作能力3. 进一步熟悉eclipse环境。二 实验内容3-4-5规则介绍3-4-5规则可以用来将数值数据分割成相对一致,看上去自然的区间。一般,该规则根据最高有效位的取值范围,递归逐层地将给定的数据区域划分成3,4或5个相对等宽的区间。我们将用一个例子解释这个规则的用法。规则如下:如果一个区间在最高有效位包含,或个不同的值,则将该区间划分为个区间(对,划分为个等宽的区间;对于,按-分组,划分成个区间)。如果在最高位包含,个不同的值,则将区间划分为个等宽的区间。如果在最高有效位包含,个不同的值,则将区间划分成个等宽的区间。该规则可以递归地用于每个区间,为给定的数值属性创建概念分层。三 实验要求 用java语言实现3-4-5规则划分算法。四 实验准备1. 了解3-4-5规则划分的具体过程2. 具体详细的算法模块用什么方法实现分析3. 对总体进行可行性的研究4. 具体的编程实现3-4-5规则划分5. 算法优点缺点优点:可以将数据分割成相对一致、看上去自然的区间缺点:需要自己确定数据来开始分割,要有一定数据分析能力五实验步骤六功能代码1.自定义数据的low和high的值为以后做准备package zhj;public class data private int low;private int high;public data(int low ,int high)this.low=low;this.high=high;public string tostirng()return (+low+,+high+;public int gethigh() return high;public void sethigh(int high) this.high = high;public int getlow() return low;public void setlow(int low) this.low = low;2.基本功能代码import java.util.arraylist;public class mydata private int min;private int max;private int low = -159867;private int high = 1838761;private int msd;private int low1;private int high1;private arraylist a = new arraylist();/ 区间的存储public mydata(int min, int max) this.min = min;this.max = max;this.msd = (int) (math.pow(10, ( + max).length() - 1);this.low1 = -msd;this.high1 = (integer.parseint(high + ).substring(0, 1) + 1) * msd;a.add(new data(low1, high1);public void three() / 第三步arraylist a1 = new arraylist();a1.add(a.get(0);a.removeall(a);/ 清空int temp = a1.get(0).getlow();for (int i = 0; i a1.get(0).gethigh() temp -= msd;temp += msd / 10;a.add(new data(a1.get(0).getlow() + temp, temp);public void four() / 第四步int lows = -(int) (integer.parseint(min + ).substring(1, 2) + 1) * math.pow(10, (min + ).length() - 1);int highs = (int) (integer.parseint(max + ).substring(0, 1) + 1) * math.pow(10, (max + ).length() - 1);a.remove(0);a.add(0, new data(lows, 0);a.add(new data(a.get(2).gethigh(), highs);public void finall() / 第五步arraylist a1 = new arraylist();/ 复制前一个区间集for (int i = 0; i a.size(); i+) a1.add(a.get(i);a.removeall(a);/ 清空区间for (int i = 0; i a1.size(); i+) / 取出没个区间并且按照3-4-5规则划分getint(count(a1.get(i), a1.get(i);/ if(!istrue()/迭代/ finall();/ system.out.println(this.printa();/ public boolean istrue()/停止迭代的条件 for (int i = 0; i a.size(); i+) if(a.get(i).gethigh()-a.get(i).getlow()100000)return true; return false; public void getint(int k, data d) / 通过传进要划分的区间和将要划分为k个区间int x = (d.gethigh() - d.getlow() / k;/ 区间的步长for (int i = 0; i k; i+) a.add(new data(d.getlow() + i * x, d.getlow() + (i + 1) * x);/ 把最后一层的区间添加到区间列表public int count(data d) / 返回下一个分区间的大小int m = -1;switch (counts(d) case 1:case 5:case 10:m = 5;break;case 3:case 6:case 9:m = 3;break;case 2:case 4:case 8:m = 4;break;default:/system.out.println(default!);break;return m;public int counts(data d) / 计算1-10合法int k;k = (d.gethigh() - d.getlow() / msd;if (k = 10) return k; else k = 10 * (d.gethigh() - d.getlow() / msd;return k;public string tostring() return 相关数据:n + min= + min + nmax= + max + nlow= + low+ nhigh= + high + nmsd= + msd + nlow1= + low1+ nhigh1= + high1 + n*;public arraylist geta() return a;public void seta(arraylist a) this.a = a;public string printa() string str = 划分后的区间:n;for (int i = 0; i a.size(); i+) str += a.get(i).tostirng() + n;return str; public static void main(string args) mydata m = new mydata(-351976, 4700896);system.out.println(m);system.out.println(m.printa();m.three();system.out.println(m.printa();m.four();system.out.println(m.printa();m.finall();system.out.println(m.printa();m.finall();system.out.println(m.printa();七实验结果相关数据:min=-351976max=4700896low=-159867high=1838761msd=1000000low1=-1000000high1=2000000*划分后的区间:(-1000000,2000000划分后的区间:(-1000000,0(0,1000000(1000000,2000000划分后的区间:(-4000000,0(0,1000000(1000000,2000000(2000000,5000000划分后的区间:(-4000000,-3000000(-3000000,-2000000(-2000000,-1000000(-1000000,0(0,200000(200000,400000(400000,600000(600000,800000(800000,1000000(1000000,1200000(1200000,1400000(1400000,1600000(1600000,1800000(1800000,2000000(2000000,3000000(3000000,4000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子科技公司招聘笔试预测试题集锦
- 2025年殡葬礼仪师中级考试试题分析及答案
- 2025年徐州市中考地理生物合卷试题卷(含答案及解析)
- 2025年注册验船师资格考试(B级船舶检验法律法规)复习题及答案一
- 2025年残联干事招聘考试行政能力测试题库
- 2025年村级红白理事会招聘考试趋势分析与预测
- 2025年高校教师招聘考试模拟题与备考策略指南
- 2025年物流公司仓储管理员招聘面试技巧与问题解析
- 2025年文化创意产业财务管理准则实战模拟题集详解
- 2025年前端开发进阶之路模拟题集与答案解析
- 度假村项目策划书
- 黑龙江小学生诗词大赛备考试题库400题(一二年级适用)
- 《HSK标准教程1》第4课课件
- 混凝土裂缝处理的讲座
- 物理化学实验:实验一 溶解热的测定
- 茂县生活垃圾资源化综合利用项目环评报告
- 保安员在岗培训法律-2
- 初中英语中考专题训练阅读理解-应用文篇
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- 熵权法教学讲解课件
- 医师病理知识定期考核试题与答案
评论
0/150
提交评论