数据挖掘课程设计[10页]

上传人:博****1 文档编号:486841440 上传时间:2022-09-25 格式:DOC 页数:10 大小:95KB
返回 下载 相关 举报
数据挖掘课程设计[10页]_第1页
第1页 / 共10页
数据挖掘课程设计[10页]_第2页
第2页 / 共10页
数据挖掘课程设计[10页]_第3页
第3页 / 共10页
数据挖掘课程设计[10页]_第4页
第4页 / 共10页
数据挖掘课程设计[10页]_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数据挖掘课程设计[10页]》由会员分享,可在线阅读,更多相关《数据挖掘课程设计[10页](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个相对等宽的区 间。我们将用一个例子解释这个规则的用法。规则如下:如果一个区间在最高有效位包 含3, 6 , 7或9个不同的值,则将该区间划分为3个区

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

3、:需要自己确定数据来开始分割,要有一定数据分析能力五. 实验步骤CouniMINLOU-HIGHMAXt4I -S400.000 .S5XXJO.OOOI.000.000.-$2.000.0001 gOOCMJOO SSJMJO.OOOI4 MOO.QOC* .0 O $|-5400.000 _ iW.OCOl$300X)00 $200.000 -S200.00Q $100.0001 .-$1OO.HD:.SOI($0.S200.0001仔 ixwoao.11200.005S4O0.0G0Jf $400.000.$600.000 t$600.XX).SSOOXMM)| 佔,rwvr $1.00

4、0.00014SL2OO.OOO. $ 400.000 ($I/IOOjOOO $1X500.000 $1.600.000.: $14)00X)001 i$LMiX.OfrV |$2.600jD00|(53-000,000. $3.000.000|($3.000.000S4.COOXOOJ a = new ArrayList () ; / 区间的存储 public MyDant min, int max) this.min = min;this.max = max;this msd = (int) (Math pow(10, (” + max)length() - 1);this lowl =

5、 -msd;this.highl = (Integer.parsGlnt(high + ”)substring(0, 1) ) +1) * msd;a.add(new Data(lowlz highl);public void three () / 第三步ArrayList al = new ArrayList();aladd(a.get(0);a.removeAll (a) ;/ 清空int temp = ml.get(0).getLow();for (int i = 0; i alget(0)getHigh()temp -= msd;temp += msd / 10;a.add(new D

6、ata(alget(0).getLow() + temp, temp);public void four () / 第四步int lows = -(int)(Integer.parselnt(min + ”)substring(1,2) +1) * Mathpow(10, (min + ”)length() - 1);int highs = (int) (Tnteger.pmrselnt(max + ”) .substring(0, 1) +1) * Mathpow(10, (max + ”).length() 一 1);a remove(0);a.add(0, new Data(lows,

7、0);a.add(new Data(a.get(2).getHigh(), highs);public void f inall () / 第五步ArrayList al = new ArrayList();/ 复制前个区间集for (int i = 0; i a.size (); i+) al add(a get(i);a. removeAll (a) ; / 清空区间for (int i = 0; i al. size () ; i+) / 取出没个区间并且按照 3-4-5 规则划分getInt(count(al.get (i), alget (i);/if (!isTrue() ) /迭

8、代/finall ();/System.out.printin(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 getlnt (int k, Data d) /通过传进要划分的区间和将要划分 为k个区间int x = (d.getHigh () - d.getLow () ) / k; / 区I可的步长fo

9、r (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.outprintin(defaul

10、t!”);break;return m;public int counts (Data d) / 计算 1-10 合法 int k;k = (d.getHigh() - dgetLow() / msd; if (k = 10) return k; else k = 10 * (dgetHigh() - d.getLow() / msd;return k;public String toString()return ”相关数据:nn + nmin=n + min + nnmax=H + max + nnlow=H + low+ ,nhigh=n + high + Hnmsd=n + msd +

11、nnlowl=n + lowl+ nnhighl=H + highl + n*H;public ArrayLisgetA()return a;public void setA(ArrayListDaa) this m = a;public String printA()String str = ”划分后的区间:nn;for (int i = 0; i 3size (); i+) str += a.get(i)toStirng() + Hn;return str;public static void main(String args) MyDam = new MyDa(-351976, 4700896);System.out.print丄n(m);System.outprintln(mprintA();m.three ();System.outprintln(mprintA();m.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号