数据挖掘课程设计docx.docx

上传人:b****6 文档编号:4512403 上传时间:2022-12-01 格式:DOCX 页数:9 大小:35.77KB
下载 相关 举报
数据挖掘课程设计docx.docx_第1页
第1页 / 共9页
数据挖掘课程设计docx.docx_第2页
第2页 / 共9页
数据挖掘课程设计docx.docx_第3页
第3页 / 共9页
数据挖掘课程设计docx.docx_第4页
第4页 / 共9页
数据挖掘课程设计docx.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

数据挖掘课程设计docx.docx

《数据挖掘课程设计docx.docx》由会员分享,可在线阅读,更多相关《数据挖掘课程设计docx.docx(9页珍藏版)》请在冰豆网上搜索。

数据挖掘课程设计docx.docx

数据挖掘课程设计docx

【数据挖掘课程设计】

-—3-4-5规则划分

一实验目的3

二实验内容3

三实验要求3

四实验准备3

五实验步骤4

六功能代码5

七实验结果9

八实验心得10

—.实验目的

1.加强对3-4-5规则划分算法的了解

2.加强对Java语言的理解与动手操作能力

3.进一步熟悉eclipse环境。

2.实验内容

3-4-5规则介绍

3-4-5规则可以用来将数值数据分割成相对一致,看上去自然的区间。

一般,该规则根据最高有效位的取值范围,递归逐层地将给定的数据区域划分成3,4或5个相对等宽的区间。

我们将用一个例子解释这个规则的用法。

规则如下:

如果一个区间在最高有效位包含3,6,7或9个不同的值,则将该区间划分为3个区间(对3,6,9,划分为3个等宽的区间;对于7,按2-3-2分组,划分成3个区间)。

如果在最高位包含2,4,8个不同的值,则将区间划分为4个等宽的区间。

如果在最高有效位包含1,5,10个不同的值,则将区间划分成5个等宽的区间。

该规则可以递归地用于每个区间,为给定的数值属性创建概念分层。

3.实验要求

用Java语言实现3-4-5规则划分算法。

4.实验准备

1.了解3-4-5规则划分的具体过程

2.具体详细的算法模块用什么方法实现分析

3.对总体进行可行性的研究

4.具体的编程实现3-4-5规则划分

5.算法优点缺点

优点:

可以将数据分割成相对一致、看上去自然的区间

缺点:

需要自己确定数据来开始分割,要有一定数据分析能力

5.实验步骤

Couni

MIN

LOU-

HIGH

MAX

.95th

Step2

mx41,000.000LOW$1,000,000HKHI12.000.000

Strfi5

f$1.000.000..J.XOOO.OOOI

i-$1.000^000.SO)(SO...SI.OOOJDOO)($1JMXJ.OOO..SXOOGXXX)J

S(r>t4

I-S400.000.S5XXJO.OOOI

.000.000.-$2.000.0001gOOCMJOOSSJMJO.OOOI

4MOO.QOC*.0]

<-5400.000_iW.OCOl

「$300X)00…$200.000]<-S200.00Q…$100.0001.-$1OO.HD<>:

..

SOI

($0..

S200.0001

仔ixwoao..

11200.005

S4O0.0G0J

f$400.000...

$600.000]t$600.«XX).

SSOOXMM)|■佔,rwvr$1.000.0001

4SL2OO.OOO..$]<400.000]($I/IOOjOOO$1X500.000]<$1.600.000.:

$14)00X)001i$LMiX..OfrV|$2.600jD00|

(53-000,000..$3.000.000|

($3.000.000

S4.COOXOOJ<54.000.000S5.0G0.0001

6.功能代码

1.自定义数据的low和high的值为以后做准备

packagezhj;

publicclassData{

privateintlow;

privateinthigh;

publicData(intlow,inthigh){

this・low=low;

this・high=high;

}

publicStringtoStirngOV

returnH(n+low+n,n+high+n]n;

}

publicintgetHigh(){

returnhigh;

}

publicvoidsetHigh(inthigh){

this.high=high;

}

publicintgetLow(){

returnlow;

}

publicvoidsetLow(intlow){this.low=low;

}

}

2.基本功能代码

importjava.util・ArrayList;

publicclassprivateint

MyDatamin;

{

private

int

max;

private

int

low=

-159867;

private

int

high=

1838761;

private

int

msd;

private

int

lowl;

private

int

highl;

privateArrayLisData>a=newArrayList();//区间的存储publicMyDantmin,intmax){

this.min=min;

this.max=max;

this・msd=(int)(Math・pow(10,(””+max)・length()-1));

this・lowl=-msd;

this.highl=(Integer.parsGlnt((high+””)・substring(0,1))+

1)*msd;

a.add(newData(lowlzhighl));

}

publicvoidthree(){//第三步

ArrayListal=newArrayList();

al・add(a.get(0));

a.removeAll(a);//清空

inttemp=ml.get(0).getLow();

for(inti=0;i

temp+=msd;

//System.out・printin(ntemp=u+temp);

if(temp>al・get(0)・getHigh()){

temp-=msd;

temp+=msd/10;

}

a.add(newData(al・get(0).getLow()+temp,temp));

}

}

publicvoidfour(){//第四步

intlows=-(int)((Integer.parselnt((min+””)・substring(1,

2))+1)*Math

・pow(10,(min+””)・length()-1));

inthighs=(int)((Tnteger.pmrselnt((max+””).substring(0,1))+1)*Math

・pow(10,(max+””).length()一1));

a・remove(0);

a.add(0,newData(lows,0));

a.add(newData(a.get

(2).getHigh(),highs));

}

publicvoidfinall(){//第五步

ArrayListal=newArrayList();//复制前——个区间集

for(inti=0;i

al・add(a・get(i));

}

a.removeAll(a);//清空区间

for(inti=0;i

getInt(count(al.get(i)),al・get(i));

}

//if(!

isTrue()){//迭代

//finall();

//System.out.printin(this・printA());

//}

}

publicbooleanisTrue(){//停止迭代的条件

for(inti=0;i

if((a.get(i).getHigh()-a.get(i).getLow())<100000){

returntrue;

returnfalse;

}

publicvoidgetlnt(intk,Datad){//通过传进要划分的区间和将要划分为k个区间

intx=(d.getHigh()-d.getLow())/k;//区I'可的步长

for(inti=0;i

a.add(newData(d.getLow()+i*x,d.getLow()+(i+1)*

x));//把最后一层的区间添加到区间列表

}

publicintcount(Datad){//返回下一个分区间的大小intm=-1;

switch(counts(d)){

case1:

case5:

case10:

m=5;

break;

case3:

case6:

case9:

m=3;

break;

case2:

case4:

case8:

m=4;

break;

default:

//System.out・printin("default!

”);

break;

}

returnm;

}

publicintcounts(Datad){//计算1-10合法intk;

k=(d.getHigh()-d・getLow())/msd;if(k<=10){

returnk;

}else{

k=10*(d・getHigh()-d.getLow())/msd;

}

returnk;

}

publicStringtoString(){

return”相关数据:

\nn+nmin=n+min+n\nmax=H+max+n\nlow=H+low

+,,\nhigh=n+high+H\nmsd=n+msd+n\nlowl=n+lowl

+n\nhighl=H+highl+»\n**************H;

}

publicArrayLisgetA(){

returna;

}

publicvoidsetA(ArrayList

this・m=a;

}

publicStringprintA(){

Stringstr=”划分后的区间:

\nn;

for(inti=0;i<3・size();i++){

str+=a.get(i)・toStirng()+H\n";

}

returnstr;

}

publicstaticvoidmain(String[]args){

MyDam=newMyDa(-351976,4700896);

System.out.print丄n(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.printin(m.printA());

}

}

7.实验结果

相关数据:

min=-351976max=4700896low=-159867high=1838761msd=1000000lowl=-1000000highl=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,4000000]

(4000000.5000000]

A.实验心得

通过此次课程设计,加强了对3-4-5规则划分的理解,也是自己的动手能力有所提高。

但是也让我发现了自己很多的不足之处,在JAVA编码的能力上还有待提高,希望以后能多有这样的课设让自己的能力可以提高。

这一次的课程设计编码阶段有儿个同学给了我很大的帮助,也让我知道了团队协作能大大的提高工作效率,所以我也希望以后能有一些团队形式的锻炼。

总之这次课设让我学会了很多东西,对我有了许多的启发。

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

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1