数据挖掘课程设计.doc

上传人:文库蛋蛋多 文档编号:2396300 上传时间:2023-02-17 格式:DOC 页数:10 大小:86.50KB
返回 下载 相关 举报
数据挖掘课程设计.doc_第1页
第1页 / 共10页
数据挖掘课程设计.doc_第2页
第2页 / 共10页
数据挖掘课程设计.doc_第3页
第3页 / 共10页
数据挖掘课程设计.doc_第4页
第4页 / 共10页
数据挖掘课程设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数据挖掘课程设计.doc》由会员分享,可在线阅读,更多相关《数据挖掘课程设计.doc(10页珍藏版)》请在三一办公上搜索。

1、【数据挖掘课程设计】-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个相对等宽的区间。我们将用一个例子解释这个规则的用法。规则如下:如果

2、一个区间在最高有效位包含,或个不同的值,则将该区间划分为个区间(对,划分为个等宽的区间;对于,按-分组,划分成个区间)。如果在最高位包含,个不同的值,则将区间划分为个等宽的区间。如果在最高有效位包含,个不同的值,则将区间划分成个等宽的区间。该规则可以递归地用于每个区间,为给定的数值属性创建概念分层。三 实验要求 用Java语言实现3-4-5规则划分算法。四 实验准备1. 了解3-4-5规则划分的具体过程2. 具体详细的算法模块用什么方法实现分析3. 对总体进行可行性的研究4. 具体的编程实现3-4-5规则划分5. 算法优点缺点优点:可以将数据分割成相对一致、看上去自然的区间缺点:需要自己确定数

3、据来开始分割,要有一定数据分析能力五实验步骤六功能代码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;pub

4、lic 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();

5、/ 区间的存储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.

6、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);in

7、t 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.r

8、emoveAll(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

9、 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

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

11、 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)

12、.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.p

13、rintln(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

14、(-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,4000000(4000000,5000000八实验心得通过此次课程设计,加强了对3-4-5规则划分的理解,也是自己的动手能力有所提高。但是也让我发现了自己很多的不足之处,在JAVA编码的能力上还有待提高,希望以后能多有这样的课设让自己的能力可以提高。这一次的课程设计编码阶段有几个同学给了我很大的帮助,也让我知道了团队协作能大大的提高工作效率,所以我也希望以后能有一些团队形式的锻炼。总之这次课设让我学会了很多东西,对我有了许多的启发。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号