📅  最后修改于: 2023-12-03 15:04:59.132000             🧑  作者: Mango
关联规则挖掘是数据挖掘中的一种技术,它可以通过发现数据中的频繁项集和关联规则,来帮助我们了解不同变量之间的关系。在R编程中,我们可以利用arules
包来进行关联规则挖掘。
要使用arules包,我们需要先安装它。在R控制台中输入以下命令:
install.packages("arules")
在进行关联规则挖掘之前,我们需要先准备好数据。在这里,让我们使用arules
包中内置的Groceries
数据集。
library(arules)
data("Groceries")
summary(Groceries)
输出结果如下:
transactions as itemMatrix in sparse format with
9835 rows (elements/itemsets/transactions) and
169 columns (items) and a density of 0.02609146
most frequent items:
whole milk other vegetables rolls/buns soda yogurt bottled water
2513 1903 1809 1715 1372 1087
sparse transaction matrix:
whole milk butter yogurt rice abrasive cleaner brew cheese coffee instant food fruit juice rolls/buns dessert onion tropical fruit chocolate bottled water yogurt,herb bread toilet cleaner
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
...
接下来,我们将使用apriori
函数来挖掘数据中的频繁项集。频繁项集是指在数据集中出现频率较高的项集,比如在购物清单中同时购买牛奶和面包的人数较多。
rules <- apriori(Groceries, parameter = list(supp = 0.001, conf = 0.8, target = "frequent itemsets"))
rules
在这个例子中,我们设置了supp = 0.001
,表示项集在数据集中的最小支持度为0.001;conf = 0.8
,表示项集的最小置信度为0.8;target = "frequent itemsets"
,表示我们要挖掘的是频繁项集。
apriori
函数的输出结果如下:
Apriori
Parameter specification:
confidence minval smax arem aval originalSupport maxtime support minlen maxlen target ext
0.8 0.1 1.0 none FALSE TRUE 5 0.001 1 10 frequent FALSE
Algorithmic control:
filter tree heap memopt load sort verbose
0.1 TRUE TRUE FALSE TRUE 2 TRUE
Absolute minimum support count: 9
set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
sorting and recoding items ... [98 item(s)] done [0.00s].
creating transaction tree ... done [0.00s].
checking subsets of size 1 2 3 4 done [0.00s].
writing ... [11551 set(s)] done [0.00s].
creating S4 object ... done [0.00s].
输出结果中包含所有满足最小支持度和最小置信度要求的频繁项集。
频繁项集只是挖掘关联规则的一部分。关联规则指的是在频繁项集中,项之间的关系,比如购买牛奶的人更有可能购买面包。
我们使用apriori
函数来挖掘关联规则,设置target = "rules"
即可。
rules <- apriori(Groceries, parameter = list(supp = 0.001, conf = 0.5, target = "rules"))
rules
在这个例子中,我们设置了conf = 0.5
,表示关联规则的最小置信度为0.5。
apriori
函数的输出结果如下:
Apriori
Parameter specification:
confidence minval smax arem aval originalSupport maxtime support minlen maxlen target ext
0.5 0.1 1.0 none FALSE TRUE 5 0.001 1 10 rules FALSE
Algorithmic control:
filter tree heap memopt load sort verbose
0.1 TRUE TRUE FALSE TRUE 2 TRUE
Absolute minimum support count: 9
set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
sorting and recoding items ... [122 item(s)] done [0.00s].
creating transaction tree ... done [0.00s].
checking subsets of size 1 2 3 4 5 6 done [0.06s].
writing ... [7785 rule(s)] done [0.00s].
creating S4 object ... done [0.00s].
输出结果中包含所有满足最小支持度和最小置信度要求的关联规则。
我们可以使用inspect
函数来查看这些关联规则:
inspect(rules)
输出结果如下:
lhs rhs support confidence lift
[1] {citrus fruit,margarine} => {whole milk} 0.001323488 0.8153846 3.2159396
...
关联规则挖掘是一种用于发现数据中变量之间关系的技术。在R编程中,我们可以使用arules
包中的apriori
函数来进行关联规则挖掘。通过调整最小支持度和最小置信度参数,我们可以挖掘出频繁项集和关联规则,并根据这些结果来了解数据中变量之间的关系。