《数据仓库与数据挖掘技术》-基于weka实现KNN 联系客服

发布时间 : 星期三 文章《数据仓库与数据挖掘技术》-基于weka实现KNN更新完毕开始阅读48d42bdf06a1b0717fd5360cba1aa81144318f0b

计算机与数据科学学院 《数据仓库与数据挖掘》实验报告

value = entry.getValue(); } }

return key; }

// 计算频率

public static Map computeP(Map map,

double k) {

Map p = new HashMap();

for (Map.Entry entry : map.entrySet()) {

p.put(entry.getKey(), entry.getValue() / k); }

return p; }

// 计算每个分类包含的点的个数

public static Map getNumberOfType( List listDistance, List listPoint, double k) {

Map map = new HashMap(); int i = 0; System.out.println(\选取的k个点,由近及远依次为:\); for (Distance distance : listDistance) {

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 creatDataSet() { Point point1= new Point(1, 1.0, 1.1, \); Point point2 = new Point(2, 1.0, 1.0, \); Point point3 = new Point(3, 1.0, 1.2, \); Point point4 = new Point(4, 0, 0, \); Point point5 = new Point(5, 0, 0.1, \); Point point6 = new Point(6, 0, 0.2, \);

ArrayList dataList = new ArrayList(); dataList.add(point1); dataList.add(point2); dataList.add(point3); dataList.add(point4); dataList.add(point5); dataList.add(point6);

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算法;平时学习过程中也要和同学们多多交流。查漏补缺,对以后的学习有很大的帮助。

教师批语