当前位置:首页 > 《数据仓库与数据挖掘技术》-基于weka实现KNN
计算机与数据科学学院 《数据仓库与数据挖掘》实验报告
value = entry.getValue(); } }
return key; }
// 计算频率
public static Map
double k) {
Map
for (Map.Entry
p.put(entry.getKey(), entry.getValue() / k); }
return p; }
// 计算每个分类包含的点的个数
public static Map
Map
System.out.println(\为\ + distance.getId() + \距离为:\
+ distance.getDisatance()); long id = distance.getId(); // 通过id找到所属类型,并存储到HashMap中 for (Point point : listPoint) { if (point.getId() == id) {
if (map.get(point.getType()) != null)
计算机与数据科学学院 《数据仓库与数据挖掘》实验报告
map.put(point.getType(), map.get(point.getType()) + 1); else {
map.put(point.getType(), 1); } } } i++;
if (i >= k) break; }
return map; }
public static ArrayList
ArrayList
return dataList; } }
计算机与数据科学学院 《数据仓库与数据挖掘》实验报告
3.阅读一篇关于weka的博客并进行总结 1.简介:
WEKA是一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。 2.储存:
Weka存储数据的格式是ARFF(Attribute-RelationFile Format)文件,这是一种ASCII文本文件。 3.内容:
识别ARFF文件的重要依据是分行,因此不能在这种文件里随意的断行。空行(或全是空格的行)将被忽略。
以“%”开始的行是注释,WEKA将忽略这些行。如果你看到的“weather.arff”文件多了或少了些“%”开始的行,是没有影响的。
除去注释后,整个ARFF文件可以分为两个部分。第一部分给出了头信息(Head
information),包括了对关系的声明和对属性的声明。第二部分给出了数据信息(Data information),即数据集中给出的数据。从“@data”标记开始,后面的就是数据信息了。 4.实例:
数据信息中“@data”标记独占一行,剩下的是各个实例的数据。
每个实例占一行。实例的各属性值用逗号“,”隔开。如果某个属性的值是缺失值(missing value),用问号“?”表示,且这个问号不能省略。 5.数据准备:
WEKA还提供对CSV文件的支持,而这种格式是被很多其他软件所支持的。此外,WEKA还提供了通过JDBC访问数据库的功能。将CSV转换为ARFF最迅捷的办法是使用WEKA所带的命令行工具。 在WEKA 3.5中提供了一个“Arff Viewer”模块,我们可以用它打开一个CSV文件将进行浏览,然后另存为ARFF文件。 6.关联规则:
目前,WEKA的关联规则分析功能仅能用来作示范,不适合用来挖掘大型数据集。
四、 实验总结(每项不少于20字)
存在问题:对knn不是很明白,许多代码已经忘记,再次操作时不仅生疏,还会出现许多错误。也有很多知识点混淆。
计算机与数据科学学院 《数据仓库与数据挖掘》实验报告
解决方法:多看书,多了解,多和同学讨论。将忘记的知识补上,还要多拓展知识,用不同的方法解决问题。
收获:逐步了解了knn算法;平时学习过程中也要和同学们多多交流。查漏补缺,对以后的学习有很大的帮助。
教师批语
共分享92篇相关文档