《数据挖掘课程设计-》由会员分享,可在线阅读,更多相关《数据挖掘课程设计-(10页珍藏版)》请在金锄头文库上搜索。
1、【数据挖掘课程设计数据挖掘课程设计】-3-4-5 规则划分规则划分目目 录录一一 实实 验验 目目 的的-3-3二二 实实 验验 内内 容容-3-3三三 实实 验验 要要 求求-3-3四四 实实 验验 准准 备备-3-3五五 实实 验验 步步 骤骤-4-4六六 功功 能能 代代 码码-5-5七七 实实 验验 结结 果果-9-9八八 实实 验验 心心 得得-10-10一一 实验目的实验目的1.加强对 3-4-5 规则划分算法的了解 2.加强对 Java 语言的理解与动手操作能力 3.进一步熟悉 eclipse 环境。二二 实验内容实验内容3-4-5 规则介绍规则介绍3-4-5 规则可以用来将数值
2、数据分割成相对一致,看上去自然的区间。一般,该规则根 据最高有效位的取值范围,递归逐层地将给定的数据区域划分成 3,4 或 5 个相对等宽 的区间。我们将用一个例子解释这个规则的用法。规则如下:如果一个区间在最高有效 位包含,或个不同的值,则将该区间划分为个区间(对,划分 为个等宽的区间;对于,按-分组,划分成个区间) 。如果在最高位包含 ,个不同的值,则将区间划分为个等宽的区间。如果在最高有效位包含 ,个不同的值,则将区间划分成个等宽的区间。该规则可以递归地用于每 个区间,为给定的数值属性创建概念分层。三三 实验要求实验要求用 Java 语言实现 3-4-5 规则划分算法。四四 实验准备实验
3、准备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) t
4、his.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
5、 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)
6、; 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 +=
7、 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
8、.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 getA() return a; public void setA(ArrayList a) this.a = a; public String printA() String str = “划分后的区间:n“; for (int i = 0; i a.size
9、(); 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(
10、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划分后的区间: (-40000
11、00,-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,4000000(4000000,5000000八实验心得八实验心得通过此次课程设计,加强了对 3-4-5 规则划分的理解,也是自己的动手能力有 所提高。但是也让我发现了自己很多的不足之处,在 JAVA 编码的能力上还有待 提高,希望以后能多有这样的课设让自己的能力可以提高。这一次的课程设计 编码阶段有几个同学给了我很大的帮助,也让我知道了团队协作能大大的提高 工作效率,所以我也希望以后能有一些团队形式的锻炼。总之这次课设让我学 会了很多东西,对我有了许多的启发。