数据挖掘与数据仓库实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 = new

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 getRandKNum(int k, int max) { List rand = new ArrayList(k);

//创建一个可以存储数据的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 d1, List d2) {

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训练数据集

相关文档
最新文档