数据挖掘与数据仓库实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据仓库与数据挖掘》
实验报告册
20 16 - 20 17 学年第 1 学期班级:
学号:
姓名:
授课教师:杨丽华实验教师:杨丽华
实验学时: 16 实验组号: 1
信息管理系
实验一 Microsoft SQL Server Analysis Services的使用
实验类型:验证性实验学时:4
实验目的:
学习并掌握Analysis Services的操作,加深理解数据仓库中涉及的一些概念,如多维数据集,事实表,维表,星型模型,雪花模型,联机分析处理等。
实验内容:
在实验之前,先通读自学SQL SERVER自带的Analysis Manager概念与教程。按照自学教程的步骤,完成对FoodMart数据源的联机分析。建立、编辑多维数据集,进行OLAP操作,看懂OLAP的分析数据。
实验步骤(写主要步骤,可以打印):
1.
2.
3.
5.
6.
7.
8.
9.
10.
11.
12
实验二使用WEKA进行分类与预测
实验类型:综合性实验学时:4
实验目的:
掌握数据挖掘平台WEKA的使用。综合运用数据预处理、分类与预测的挖掘算法、结果的解释等知识进行数据挖掘。从而加深理解课程中的相关知识点。
实验内容:
阅读并理解WEKA的相关中英文资料,熟悉数据挖掘平台WEKA,针对实际数据,能够使用WEKA进行数据的预处理,能选择合适的分类与预测算法对数据进行分析,并能解释分析结果。
实验步骤(可以打印):
1.
2.
3
监督过滤(supervisedFilter)和非监督过滤(UnsupervisedFilter) 4.
5.
实验三使用WEKA进行关联规则与聚类分析
实验类型:综合性实验学时:4
实验目的:
掌握数据挖掘平台WEKA的使用。综合运用数据预处理、关联规则与聚类的挖掘算法、结果的解释等知识进行数据挖掘。从而加深理解课程中的相关知识点。
实验内容:
阅读并理解WEKA的相关中英文资料,熟悉数据挖掘平台WEKA,针对实际数据,能够使用WEKA进行数据的预处理,了解属性选择,能选择合适的关联规则与聚类算法对数据进行分析,并能解释分析结果。
实验步骤(可以打印):
实验四数据挖掘算法的程序实现
实验类型:设计性实验学时:4
实验目的:
运用数据挖掘、程序设计等相关知识,选择一个数据挖掘的常用算法进行程序设计实现。加深对数据挖掘算法基本原理、详细执行过程和具体应用情况的理解。
实验内容:
采用任何一种自己熟悉的编程语言,完成算法的程序设计,并在每个程序设计语句后面进行详细的注释。能够运用实现的算法来解决某个具体的问题,得到并解释程序运行的结果。推荐的算法:
1 关联规则:Apriori算法
2 分类与预测:ID3, C4.5, KNN, BP,
3 聚类:k-means
实验步骤(可以打印):
package Kmn_Arit;
import java.util.ArrayList;
import parator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.PriorityQueue;
/**
* @author信管151 阳凡凡
* 内容:KNN算法主体类
*/
public class Kmn {
/**
* 设置优先级队列的比较函数,距离越大,优先级越高
*/
private Comparator
Comparator
//实现Comparator这个接口,创建comparator这个对象,类型是KNNNode public int compare(KNNNode x1, KNNNode x2) {
//比较参数x1和参数x2
/**
* 比较x1测试元组的距离与x2 测试元组的距离的大小
* 如果x1大,则返回1,否则返回0
*/
if (x1.getDistance() >= x2.getDistance()) {
return 1;
} else {
return 0;
}
}
};
/**
* 获取K个不同的随机数
* @随机数的个数
* @随机数最大的范围
* @生成的随机数数组
*/
public List
//创建一个可以存储数据的List集合对象rand
for (int i = 0; i < k; i++) {
int temp = (int) (Math.random() * max);
//获取随机数值后,然后乘以max,再强制转换成int类型,赋值给temp
if (!rand.contains(temp)) {
rand.add(temp);
//如果rand对象不包含temp,就将temp添加到rand集合对象中
} else {
i--;
}
}
return rand;
//最终返回rand对象
}
/**
* 计算测试元组与训练元组之前的距离
* @param d1测试元组
* @param d2训练元组
* @return距离值
*/
public double calDistance(List
double distance = 0.00;
for (int i = 0; i < d1.size(); i++) {
distance += (d1.get(i) - d2.get(i)) * (d1.get(i) - d2.get(i));
//距离值的计算
}
return distance;
//返回距离值distance
}
/**
* 执行KNN算法,获取测试元组的类别
* @param datas训练数据集