实验目的:
实验学时:4
运用数据挖掘、程序设计等相关知识,选择一个数据挖掘的常用算法进行程序设计实现。加
深对数据挖掘算法基本原理、详细执行过程和具体应用情况的理解。
实验内容:
采用任何一种自己熟悉的编程语言,完成算法的程序设计,并在每个程序设计语句后面进行
详细的注释。能够运用实现的算法来解决某个具体的问题,得到并解释程序运行的结果。
推荐的算法
1关联规则:Apriori算法
2分类与预测:ID3C45KNNBP
3聚类:kmea
s
实验步骤(可以打印):
packageKm
_AritimportjavautilArrayListimportjavautilComparatorimportjavautilHashMapimportjavautilListimportjavautilMapimportjavautilPriorityQueue
author信管151阳凡凡
内容:KNN算法主体类
16
f信息工程实验室
实验报告册
publicclassKm
设置优先级队列的比较函数,距离越大,优先级越高
privateComparatorKNNNodecomparator
ewComparatorKNNNode
实现Comparator这个接口创建comparator这个对象类型是KNNNode
publici
tcompareKNNNodex1KNNNodex2
比较参数x1和参数x2
比较x1测试元组的距离与x2测试元组的距离的大小
如果x1大,则返回1,否则返回0
ifx1getDista
cex2getDista
ce
retur
1else
retur
0
获取K个不同的随机数
随机数的个数
随机数最大的范围
生成的随机数数组
publicListI
tegergetRa
dKNumi
tki
tmax
ListI
tegerra
d
ewArrayListI
tegerk
创建一个可以存储数据的List集合对象ra
d
17
f信息工程实验室
实验报告册
fori
ti0ikii
ttempi
tMathra
dommax
获取随机数值后,然后乘以max,再强制转换成i
t类型,赋值给temp
ifra
dco
tai
stempra
daddtemp
如果ra
d对象不包含temp就将temp添加到ra
d集合对象中
elsei
retur
ra
d最终返回ra
d对象
计算测试元组与训练元组之前的距离
paramd1测试元组
paramd2训练元组
retur
距离值publicdoublecalDista
ceListDoubled1ListDoubled2
doubledista
ce000fori
ti0id1sizei
dista
ced1getid2getid1getid2geti
距离值的计算
retur
dista
ce返回距离值dista
ce
执行KNN算法,获取测试元组的类别
paramdatas训练数据集
18
f信息工程实验室
实验报告册
paramtestData测试元组
paramk设定的K值
retur
测试元组的类别publicStri
gk
ListListDoubledatasListDoubletestDatai
tk
PriorityQueueKNNNodepq
ewPriorityQueueKNNNodekcomparator
按照自然顺序存储容量为k的优先级队列ListI
tegerra
dNumgetRa
dKNumkdr