数据仓库实验二:关联规则挖掘实验

目录

    • 一、实验目的
    • 二、实验内容和要求
    • 三、实验步骤
      • 1、创建数据库和表
      • 2、挖掘关联规则
        • (1)新建一个 Analysis Services 项目 Sales
        • (2)建立数据源视图
        • (3)建立挖掘结构 Sales.dmm
        • (4)部署关联规则挖掘项目并浏览结果
    • 四、实验结果分析
    • 五、实验总结体会


一、实验目的

  通过本实验,对利用 Apriori 和 FP-growth 算法发现频繁项集、构建关联规则的方法有准确的理解。并掌握利用 Sql Server 等工具平台进行关联规则挖掘的方法,掌握挖掘结构、挖掘模型的基本概念,能够使用数据挖掘向导创建数据挖掘结构和模型,掌握数据挖掘设计器的使用方法,掌握模型查看器方法 ,理解关联规则挖掘常用的参数含义和设置方法。

二、实验内容和要求

  针对实际需求,构建格式规范的数据集,并能够借助于 SQL Server、Weka、SPSS 等工具平台,利用 Apriori/FP-growth 算法,进行关联规则挖掘,正确分析实验结果,发现知识,完成实验报告。

三、实验步骤

以下以 Sql Server 作为工具,完成数据集的构建和关联规则的挖掘。

1、创建数据库和表

在 SSMS 中建立 Sales 数据库 (模拟超市/商场的销售数据),分别设计 Maintable (客户订单表)、Subtable (订单明细表)。表的结构和内容如下所示。

Maintable (客户订单表):

在这里插入图片描述
在这里插入图片描述
Subtable (订单明细表):

在这里插入图片描述
在这里插入图片描述

2、挖掘关联规则

在 Sql Server Data Tools 中采用如下步骤挖掘关联规则。

(1)新建一个 Analysis Services 项目 Sales

定义数据源 Sales.ds,对应的数据库为前面建立的 Sales 数据库。

在这里插入图片描述

(2)建立数据源视图

定义数据源视图 Sales.dsv,它包含 Maintable 和 Subtable 两个表,并建立两个人表之间的关系,如下所示。

定义数据源视图 Sales.dsv:

在这里插入图片描述
建立两个表之间的关系:

在这里插入图片描述
数据源视图如下:

在这里插入图片描述

(3)建立挖掘结构 Sales.dmm

新建挖掘结构,在 “创建数据挖掘结构” 页面的 “您要使用何种数据挖掘技术?” 选项下,选中列表中的 “Microsoft关联规则”。

在这里插入图片描述
为该数据源视图指定 Maintable 和 Subtable 两个表。

在这里插入图片描述
在 “指定表类型” 页面上,在 Maintable 表的对应行中选中 “事例” 复选框,在 Subtable 表的对应行中选中 “嵌套” 复选框。

在这里插入图片描述
在 “指定定型数据” 页面中,选中 MainTable 表订单编号字段所在行的 “键” 复选框。在 Subtable 表的产品名称字段勾选 “键”、“输入” 和 “可预测” 复选框。

在这里插入图片描述
在 “创建测试集” 页面上,“测试数据百分比” 选项的默认值为30%,将该选项更改为0.

在这里插入图片描述
在完成向导页面的 “挖掘结构名称” 和 “挖掘模型名称” 中,都输入 Sales,并且勾选 “允许钻取” 复选框。

在这里插入图片描述
结果如下图:

在这里插入图片描述
在这里插入图片描述
打开数据挖掘设计器的 “挖掘模型” 选项卡,右击 “Sales”,在出现的下拉菜单中选择 “设置算法参数” 命令,设置 “MINIMUM_PROBABLITY” 参数为0.5,设置 MINIMUM_SUPPORT 参数为0.2。

在这里插入图片描述
在这里插入图片描述

(4)部署关联规则挖掘项目并浏览结果

先处理(部署)、再浏览。

在这里插入图片描述
打开数据挖掘设计器的 “挖掘模型查看器” 选项卡,分别选择 “规则”、“项集” 和 “依赖关系网络” 选项并浏览。结果如下图所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、实验结果分析

1、选择“规则”选项并分析

在概率为1.0条件下,可以看到 草稿本→圆珠笔,圆珠笔→草稿本,牙膏→牙刷,牙刷→牙膏,平板→耳机,耳机→平板 这6个规则的重要性较高,可见关联性较强;在概率为0.5条件下,规则 台灯→抽纸 的重要性较高,关联性较强。

在这里插入图片描述

2、选择“项集”选项并分析

在这里插入图片描述

由图可知,支持度较高的1-项集有{平板},{圆珠笔},{牙刷},{牙膏},{台灯},{水杯},{耳机},{草稿本},2-项集有{圆珠笔, 草稿本},{牙刷, 牙膏},{平板, 耳机}。

3、选择“依赖关系网络”选项并分析

将左侧的链接拉到最底端,观察最强链接。

在这里插入图片描述

最强链接有如下三个:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

五、实验总结体会

  通过挖掘数据仓库中的关联规则,我们可以发现数据之间的潜在关联性,从而为业务决策提供重要的参考依据。
  在进行实验时,首先需要准备好数据集,确保数据的完整性和准确性。然后,选择合适的挖掘算法和工具进行实验。常用的算法包括Apriori算法和FP-Growth算法,可以使用工具如Weka、RapidMiner或Python中的相应库进行实现。Apriori算法和FP-Growth都是用来发现频繁项集的算法,但Apriori算法在寻找频繁项集时需要不停的扫描数据集,而FP-Growth算法只需要扫描数据集两次,因此FP-Growth算法执行速度更快,频繁项集是进行关联分析的基础,因此能够快速高效的查找频繁项集十分重要。
  在实验过程中,需要注意调整算法的参数,以获得更好的挖掘结果。同时,对挖掘结果进行评估和解释,确保发现的关联规则具有实际意义,并能够为业务决策提供帮助。
  最后,及时总结实验过程中的经验和教训,不断优化挖掘过程,提高挖掘效率和准确性。通过不断地实践和探索,可以更好地理解数据仓库中的数据,挖掘出更多有价值的信息,为企业的发展提供有力支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java集合相关的List、Set、Map基础知识

目录 一、集合介绍 二、List 三、Map HashMap的数据结构 如何理解红黑树 四、set 一、集合介绍 在Java中,集合是一种用于存储对象的数据结构,它提供了一种更加灵活和强大的方式来处理和操作数据。Java集合框架提供了一系列接口和类,用…

Transformer模型详解01-Word Embedding

文章目录 前言Transformer 整体结构Transformer 的输入单词 Embedding原理CBOW 模型one-hot构建 CBOW 训练数据集构建 CBOW 神经网络训练 CBOW 神经网络 Skip-gram 模型one-hot构建 Skip-gram训练数据集训练 Skip-gram神经网络 Word2Vec实例数据训练保存和加载 前言 Transform…

【上岗认证】错题整理记录

目录 🌞一、阶段1:编码规范 🌊编码规范考试-CC 🌞二、阶段2:开发基础 🌊C/C 🌊数据库(Oracle/MySql) 🌞三、阶段3:测试基础 🌊…

Springboot+Vue项目-基于Java+MySQL的家政服务平台系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

实时数仓选型

实时数仓选型 实时数仓选型第一版实时数仓选型第二版 实时数仓选型第一版 实时数仓分层: 计算框架:Flink;存储框架:消息队列(可以实时读取&可以实时写入)ODS:Kafka 使用场景:每过来一条数据,读取到并加工处理DIM: HBase 使用场景:事实表会根据主键获取一行维表数据(1.永…

陪诊小程序开发:线上陪诊行业的发展

在人口老龄化的严重的当下,老人看病也更加困难,而陪诊行业作为一个新型行业,正在走入人们的生活中,帮助大众解决看病难等问题,为大众带来便捷高效的就医环境。 随着互联网时代的到来,各行各业也都开始向线…

Python+Selenium基于PO模式的Web自动化测试框架

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供…

吴恩达机器学习笔记:第 8 周-14降维(Dimensionality Reduction) 14.3-14.5

目录 第 8 周 14、 降维(Dimensionality Reduction)14.3 主成分分析问题14.4 主成分分析算法14.5 选择主成分的数量 第 8 周 14、 降维(Dimensionality Reduction) 14.3 主成分分析问题 主成分分析(PCA)是最常见的降维算法。 在 PCA 中,我们要做的是找到一个方向…

C++与或运算规则

文章目录 前言问题1问题2 前言 在笔试中遇到c或与运算的问题&#xff0c;在这记录 问题1&#xff1a;2024.4.28 问题1 下面代码的运行结果&#xff1a; #include <iostream> using namespace std; bool fun1(char ch){cout<<ch<<" ";if(ch >a…

react-lib 读取本地模板创建PDF

读取本地文件和读取远程的一样&#xff0c;都使用fetch去获取 async function modifyPdf() {let url ./template.pdflet existingPdfBytes await fetch(url).then(res > res.arrayBuffer()) // 这里也有问题要转一下const d new Uint8Array(existingPdfBytes)const pdfDo…

dremio数据湖sql行列转换及转置

1、行转列 (扁平化) 数据准备 表 aa 1.1 cross join unnest 在Dremio中&#xff0c;UNNEST 函数用于将数组或复杂类型的列&#xff08;如JSON、Map或Array类型&#xff09;中的值“炸裂”&#xff08;分解&#xff09;成多行. with aa as ( select 上海 as city, ARRAY[浦东…

Centos7_miniconda_devtools安装_R语言入门之R包的安装

因为有同事反馈安装R包很慢或卡住&#xff0c;提供了一个安装R包的命令给我测试&#xff0c;在安装过程中复现报错信息&#xff0c;把下载慢或卡顿的链接中的域名在防火墙中调整出口。 devtools::install_github("GreenleafLab/ArchR", ref"master", repo…

How to solve matplotlib Chinese garbled characters in Ubuntu 22.04

conda create -n huizhou python3.8conda activate huizhouconda install numpy matplotlibpip install mplfontsmplfonts init# 导入必要的库 import numpy as np import matplotlib.pyplot as plt# 创建角度数组&#xff0c;从0到2π x np.linspace(0, 2 * np.pi, 100)# 计算…

使用逆滤波算法deconvwnr恢复图像回复图像时,产生了很多横竖条纹。解决办法

使用逆滤波算法deconvwnr恢复图像回复图像时&#xff0c;产生了很多横竖条纹。解决办法 原来的代码 % 清除工作空间并关闭所有图形窗口 clear; clc; close all;% 读取原始图像 original_image imread(pic3.jpg);% 显示原始图像 subplot(131); imshow(original_image); title…

密码学python库PBC安装使用

初始化 使用环境云服务器&#xff08;移动云可以免费使用一个月&#xff09; 选择ubuntu18.04-64位 第一次进入linux命令行之后是没有界面显示的&#xff0c;需要在命令行下载。 这里按照其他云平台操作即可&#xff1a;Ubuntu18.04 首次使用配置教程(图形界面安装) 记录好登录…

用Stream流方式合并两个list集合(部分对象属性重合)

一、合并出共有部分 package com.xu.demo.test;import java.util.Arrays; import java.util.List; import java.util.stream.Collectors;public class ListMergeTest1 {public static void main(String[] args) {List<User> list1 Arrays.asList(new User(1, "Alic…

跨境电商亚马逊、虾皮等平台做测评要用什么IP?

IP即IP地址&#xff0c;IP地址是指互联网协议地址&#xff08;英语&#xff1a;Internet Protocol Address&#xff0c;又译为网际协议地址&#xff09;&#xff0c;是IP Address的缩写&#xff0c;IP地址是IP协议提供的一种统一的地址格式 功能&#xff1a;它为互联网上的每一…

Java中一个汉字究竟占几个字节?

前言 在今天&#xff0c;“Java中一个汉字占几个字符”的问题&#xff0c;让我提起了兴趣 在我的记忆中&#xff0c;一个字符应该是占两个字符的。但看了他人的回答 发现自己对这方面了解非常片面&#xff0c;于是痛定思痛潜心学习&#xff0c;写下这篇博客 总结不足文章目录 …

ubuntu18.04系统编译openwrt21.02.3

搭建ubuntu18.04环境 使用虚拟机安装ubuntu环境网上教程很多&#xff0c;这里不做赘述&#xff0c;主要是安装一些我们在编译openwrt时可能会用到的一些工具环境 sudo apt-get update sudo apt instll libncurses-dev gawk sudo apt-get install build-essential libncurses5…

【python技术】使用akshare抓取东方财富所有概念板块,并把指定板块概念的成分股保存excel 简单示例

最近有个想法&#xff0c;分析A股某个概念成分股情况进行分析&#xff0c;第一反应是把对应概念板块的成分股爬取下来。说干就干 下面是简单示例 import akshare as ak import pandas as pddef fetch_and_save_concept_stocks(name):# 获取指定股票概念的成分股&#xff0c;并…