使用SPSS Modeler 进行关联分析以及生成决策树

目录

1、下载SPSS 18

2、数据导入

3、使用SPSS进行关联分析

 

1)关联分析

2)建立决策树

3)使用python简单的实现Apriori算法进行关联分析

4)C5.0算法生成决策树简单实现

4、感谢你阅览至此,相信你已经对关联分析和生成决策树有了一定的了解,在当今数据爆炸的时代,合理的进行大数据分析和数据挖掘,有利于筛选出我们需要的信息。如果觉得不错的话,求个三连!!!


1、下载SPSS 18

可以选择官网下载SPSS官网,当然需要破解直装版可以三连私聊我哦!

2、数据导入

数据集下载:数据集点这 ,提取码:pemu

3、使用SPSS进行关联分析

1)关联分析

        

步骤:

  • 打开并查看数据文件。利用“变量文件”节点将“BASKETS1n”添加节点中。然后使用“输出”选项卡下的“表”查看数据,如图所示。这里的数据是某商场中的购买记录,共18个字段,1000条记录,在后面的列中,值“T”表示已购买该商品,值“F”表示没有购买该商品。
  • 确定关联分析字段。在这里中,需要对购买商品之间进行关联分析,即确定客户购 买商品之间是否存在关联性,也就是说客户在购买一种商品时,购买另一种商品的 概率是多少。所以,在这里,将选择记录中能够体现是否购买某商品的字段进行关 联分析,其中有fruitveg,freshmeat,dairy,cannedveg,cannedmeat,frozenmeal,beer,wine,softdrink,fish,confectionery,共11个字段。
  • 读入分析字段的类型。在工作区生成“类型”节点,并双击编辑,将上一步骤选出的11个字段的角色设定为“任意”,其他字段的角色设定为“无”,如下图。
  • 添加模型节点。分别在“类型”之后添加“Apriori”模型节点和“Crama”模型节点,如下图所示。其中,“Apriori”模型是基于“最低支持度”和“最小置信度”进行关联性分析。
  • 将最小规则支持度参数和最小规则置信度分别设置为10%和80%,运行并查看“Apriori”关联模型结果。运行“Apriori”模型的数据流,在右上侧生成数据模型,右键查看,如下图所示。表中可以看出,客户同时购买frozenmeal、beer、cannedveg的概率很高。因此,商家可以将这三种商品放在相邻的位置,以促进销量。
  • 将最小规则支持度参数和最小规则置信度分别设置为10%和80%,运行并查看“Carma”关联模型结果。运行“Carma”模型的数据流,在右上侧生成数据模型,右键查看,如下图所示。同样可以看出,客户同时购买frozenmeal、beer、cannedveg 的概率很高。
  • 利用“网络”图进行定性关联分析。选定“类型”节点,双击“图形”选项卡下的“网络”,既可添加“网络节点”。然后,需双击编辑“网络”节点,将步骤五中选择的11个字段选定为分析字段。运行该“网络”节点,则右上区域生成关联模型,查看该关联模型,如下图。从图中表明,两点之间的线越粗,表示两者间相关性越强。同时可以通过调节下面的滑动点,查看相关性。 

2)建立决策树

如下图所示:

  • 在上一步数据关联的基础上,分析哪些顾客是“健康食品购买者”,即同时购买fruitveg和fish。
  • 如何标志健康食品购买者。点击“字段选项”选项卡下的“导出”,与“类型”节点连接,增加一个属性(Healthy)来标识健康食品购买者。编辑“导出”节点,将字段类型设为“标记”,并编辑“fruitveg='T' and fish='T'”,该公式表示消费者同时购买fruitveg和fish这两种商品,如下图所示。
  • 查看增加“Healthy”之后的数据表。利用“表”来查看数据表,如下图,可以看到表中增加了一个“Healthy”字段,描述是否为健康食品购买者。
  • 接入一个“类型”节点。在这里,需要重新编辑字段的角色,如下图所示。其中与用户相关的信息字段(除cardid外)角色都设定为“输入”,而“Healthy”变为“输出”,其他的选择“无”。
  • 接入C5.0决策树模型。双击“建模”选项卡下的“C5.0”模型,即可以完成添加。如下图所示
  • 运行决策树模型。分别运行“决策树”和“规则集”两种形式,查看两者得到的结果分 如下图所示。两者都分别有不同的表示方式。图中显示哪些类型的顾客是健康食品购买者。
  • 其他属性的功能,如下图。“组符号”是指当有多个字段在同一个分支时,将这几个 字段放在一组;“使用 boosting ”是指使用部分数据作为再次生成决策树,最后综合这些决策树来提高决策树的精度;“交互验证”是指一部分数据用来生成决策树,一部分作为测试;“简单”是指生成决策树的准确度,但是精确度高的决策树的移植性不高;“专家”下的“修剪严重性”是指修剪的程度。
  • 添加“分析”节点作为输出,点击运行,最后运行“分析”节点,在下图中可以看出,决策树分支的正确率为93.8%。
  • 添加“输出”选项卡下的“矩阵”节点。如下图所示。
  • 运行后结果如下:

        

3)使用python简单的实现Apriori算法进行关联分析

首先介绍一下Apriori算法:

Apriori 算法的原理
1.频繁项集:Apriori 算法的目标之一是找到在给定数据集中频繁出现的项集。频繁项集是指其出现的支持度(support)大于设定的最小支持度阈值。

2.候选集生成:Apriori 算法通过逐层扩展频繁项集来生成候选项集。在每一轮迭代中,它生成包含更多商品的候选项集,并检查这些候选项集是否满足最小支持度。如果满足,候选项集就成为频繁项集。

3.剪枝(Pruning):Apriori 算法的一个重要特点是它使用了“剪枝”策略。即在生成候选项集时,如果某个项集的某个子集不满足最小支持度,那么该项集的超集也不可能满足最小支持度,因此可以直接剪去这些不可能的项集。这样可以大大减少搜索空间,提高算法的效率。

4.最小支持度 (min_support):在生成频繁项集时,Apriori 算法会对每个项集计算其支持度。支持度是指该项集出现在数据库中的频率。算法会根据设定的最小支持度阈值,筛选出频繁项集。

5.生成关联规则:基于频繁项集,Apriori 算法可以生成关联规则。关联规则通常是以 {A} → {B} 的形式表示,意味着如果商品 A 被购买,则商品 B 也有较高的购买概率。生成规则时,通常会考虑两种度量:

6.置信度 (confidence):置信度是指在包含 A 的交易中,同时包含 B 的比例。即 P(B|A)。
提升度 (lift):提升度衡量规则 A → B 的有效性 
提升度大于 1 表示规则 A → B 有较高的预测能力,提升度越大,规则越有意义。

算法流程
初始化:从单个项集开始,计算所有项集的支持度,并筛选出支持度大于或等于最小支持度的频繁项集。
扩展项集:基于当前的频繁项集生成候选项集,逐步扩大项集的大小。
剪枝:移除那些不满足支持度要求的候选项集。
生成关联规则:通过频繁项集生成满足最小置信度阈值的关联规则。
筛选规则:根据提升度等度量,筛选出具有实际意义的规则。

简单实现的代码如下:

import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules

# 1. 加载数据
data = pd.read_csv('BASKETS1n')

# 2. 仅选择商品类别列
# 商品列从 'fruitveg' 到 'confectionery'
items_df = data[['fruitveg', 'freshmeat', 'dairy', 'cannedveg', 'cannedmeat',
                 'frozenmeal', 'beer', 'wine', 'softdrink', 'fish', 'confectionery']]

# 3. 将 "T" 和 "F" 转换为布尔值
items_df = items_df.replace({'T': True, 'F': False})

# 4. 使用 Apriori 算法生成频繁项集,设定最小支持度为 0.1
frequent_itemsets = apriori(items_df, min_support=0.10, use_colnames=True)

# 5. 基于频繁项集生成关联规则,设定最小置信度为 0.8
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.8, num_itemsets=5)

# 6. 筛选提升度大于 1 的规则
rules = rules[rules['lift'] > 1]

# 7. 重命名列以便于查看,并选择展示的列
rules.rename(columns={'antecedents': 'from', 'consequents': 'to', 'support': 'sup', 'confidence': 'conf'}, inplace=True)
rules = rules[['from', 'to', 'sup', 'conf', 'lift']]

# 8. 打印结果
print(rules)

注:此实现过程,不包含多次进行候选集筛选,属于简单模拟实现。输出结果如下:

注:该显示的支持度为规则支持度,和SPSS中效果一致

4)C5.0算法生成决策树简单实现

以下使用R语言加载C5.0相关算法包,来实现

# 安装并加载C50包
install.packages("C50", repos = "https://cloud.r-project.org/")
library(C50)

# 加载数据
data <- read.csv("BASKETS1n")  # 替换为你的数据集文件路径

# 检查数据框的列名和前几行数据
colnames(data)
head(data)

# 根据 fruitveg 和 fish 列的布尔值定义 Healthy 列
data$Healthy <- ifelse(data$fruitveg == TRUE & data$fish == TRUE, 'T', 'F')
data$Healthy <- as.factor(data$Healthy)  # 确保 Healthy 列是因子类型

# 查看 Healthy 列的分布
table(data$Healthy)


# 处理缺失值(如果有的话)
data <- data[!is.na(data$Healthy), ]

# 构建 C5.0 模型,目标变量是 Healthy,输入特征为 value, pmethod, sex, homeown, income, age
model <- C5.0(Healthy ~ value + pmethod + sex + homeown + income + age, data = data)

# 查看模型摘要
summary(model)

# 将图形保存为 PNG 文件
png("decision_tree.png")
plot(model)
dev.off()  # 关闭图形设备并保存文件

运行结果如下:

4、感谢你阅览至此,相信你已经对关联分析和生成决策树有了一定的了解,在当今数据爆炸的时代,合理的进行大数据分析和数据挖掘,有利于筛选出我们需要的信息。如果觉得不错的话,求个三连!!!

### 如何在SPSS中应用Apriori算法进行关联规则分析 #### 准备工作 确保已安装并配置好SPSS Modeler 18.0版本。该环境提供了内置的支持用于执行基于Apriori算法的关联规则挖掘。 #### 导入数据集 启动SPSS Modeler后,在流编辑器界面导入待处理的数据文件。支持多种格式如CSV、Excel等,选择适合的方式加载交易记录或市场篮子数据分析所需的数据源[^3]。 #### 配置节点参数 - **Source Node**: 使用Table节点或其他适当类型的输入节点读取外部表格形式的数据。 - **Type Node (可选)**: 如果需要转换字段属性或者定义变量角色,则可以加入此节点调整设置。 - **Association Node**: - 设置`Minimum Support`(最小支持度),这决定了哪些项集被认为是频繁的; - 定义`Minimum Confidence`(最小置信度),用来过滤出满足条件的强大关联规则; - 可能还需要指定最大前件长度(Maximum Antecedent Length)和其他高级选项以优化性能和结果质量[^1]。 ```spss * Example of setting up an Association node in SPSS syntax. ASSOCIATION /VARIABLES=varlist /MIN_SUPPORT=value /MIN_CONFIDENCE=value; ``` #### 执行模型训练 连接上述各节点形成完整的流程图,并点击运行按钮让程序自动完成整个过程——从原始数据到提取特征直至最后生成关联规则列表。在此期间,系统会依据设定好的阈值筛选符合条件的结果集合[^2]。 #### 结果解释与可视化展示 一旦计算结束,即可查看输出窗口内的统计摘要表以及图形化表示法(例如网络图),这些都可用于直观理解各项之间存在的潜在联系及其强度大小。此外,还可以导出详细的报告文档供进一步研究讨论使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值