欢迎光临
我们一直在努力

10 关联分析进阶:属性处理与序列模式

核心问题:关联规则挖掘中,如何处理类别型属性和连续型属性?如何发现“先后顺序”上的规律?


第一部分:类别型属性的处理

1.1 类别型属性面临的挑战

类别型属性(如性别、职业、地区)在关联规则中常用作规则的前提(LHS)。但当某个属性取值过多或分布极不均匀时,会带来问题:

问题说明示例
取值过多 每个取值对应的支持度可能都很低,无法满足最小支持度阈值 职业有100种,每种只出现1-2次
分布极不均匀 某个取值占比极高(如>85%),会产生大量冗余规则 “个人电脑=是”占95%,几乎所有规则都带这个条件
二元化后项数爆炸 将类别属性转为二元属性(One-Hot)会大幅增加项的数量 100个职业 → 100个二元项

1.2 解决方案

① 分组聚合(Grouping)

  • 将稀有的属性值归入“其他”类别。

  • 例如:职业中的“工程师、程序员、架构师” → 归为“IT从业者”。

② 删除高占比属性

  • 如果某个取值占比超过85%,该属性几乎没有区分能力,直接删除。

  • 例如:“是否拥有个人电脑”若95%为“是”,则这个属性对挖掘几乎无用。

③ 避免互斥项集的候选

  • 二元化后,同一个属性的两个取值(如“网上购物=是”和“网上购物=否”)是互斥的,它们永远不会在同一个事务中同时出现。

  • 因此,任何同时包含这两个项的候选集支持度恒为0,应在候选生成阶段直接剔除,避免浪费计算资源。


第二部分:连续型属性的离散化方法

为了让关联规则算法能处理连续型属性(如年龄、收入、温度),需要将其转换为离散区间。以下是三种主流方法:

2.1 等宽法(Equal Width)

定义:将属性的值域均匀划分为 k 个等宽区间。

公式:区间宽度 = (max – min) / k

示例(年龄数据:18,22,25,28,30,33,35,40,45,50,55,60,65,70,k=3):

  • 区间1 [18, 35.33):{18,22,25,28,30,33,35} → 7人

  • 区间2 [35.33, 52.66):{40,45,50} → 3人

  • 区间3 [52.66, 70]:{55,60,65,70} → 4人

优点:简单直观,计算快。

缺点:对异常值极其敏感;样本分布可能极不均衡(如上例,青年组7人,中年组仅3人)。

2.2 等深法(Equal Depth / Frequency)

定义:将数据划分为 k 个区间,每个区间包含大致相同数量的数据点。

示例(同上数据,k=3):

  • 区间1 [18, 30]:{18,22,25,28,30} → 5人

  • 区间2 (30, 50]:{33,35,40,45,50} → 5人

  • 区间3 (50, 70]:{55,60,65,70} → 4人

优点:样本分布均衡,不受异常值影响。

缺点:可能将非常接近的值(如30和33)分到不同区间,丢失了"邻近性"信息。

2.3 基于聚类的划分(Clustering-based)

定义:使用K-Means等聚类算法,根据数据的自然分布进行分组。

优点:分组结果更贴合数据内在规律。

缺点:计算复杂度相对较高,需要预先指定聚类数k。

2.4 三种方法对比

方法分区依据优点缺点
等宽法 数值范围 简单直观 对异常值敏感,分布可能不均
等深法 样本数量 分布均衡,抗异常值 可能破坏邻近性
聚类法 自然分布 贴合数据内在规律 计算复杂度高

第三部分:离散化区间的"过细"与"过粗"问题

离散化后,区间划分的粒度直接影响挖掘结果:

3.1 区间划分太窄(支持度不足)

场景:将年龄分为 [21,23)、[23,25)、[25,35)、[35,50)

问题:

  • 规则 {年龄∈[21,23), 网上聊天=是} 支持度仅 0.2

  • 规则 {年龄∈[23,25), 网上聊天=是} 支持度仅 0.4

两条规则都不满足最小支持度阈值,潜在规律被错误丢弃。

3.2 区间划分太宽(置信度被稀释)

场景:将年龄合为 [21,50)

问题:

  • 规则 {年龄∈[21,50), 网上聊天=是} 支持度 0.6(达标)

  • 但置信度仅为 3/5 = 0.6(若置信度阈值为0.8,则不达标)

原本在 [21,25) 区间中置信度为 100%(3人全是"是")的强规律,被大区间稀释后丢失了价值。

3.3 最优解:邻近区间动态合并

策略:从窄区间开始,逐步合并邻近区间,直到支持度达标且置信度保持较高水平。

结果:{年龄∈[21,25), 网上聊天=是}:

  • 支持度 = 0.6(达标)

  • 置信度 = 3/3 = 100%(完美!)

💡 核心原则:支持度满足统计显著性,置信度保证预测准确率。区间划分需要在两者之间找到平衡。


第四部分:基于统计的方法处理连续型属性

除了离散化,另一种方法是将连续型属性作为规则的后件(RHS),用统计量(均值、中位数、标准差)来描述。

4.1 基本思路

  • 将目标连续属性从其他属性中抽离出来

  • 在剩余属性上挖掘频繁项集

  • 对每个频繁项集,计算目标属性的统计量(如均值、标准差)

  • 进行假设检验,判断该规则是否具有统计显著性

  • 4.2 关联规则的统计检验

    场景:挖掘出规则 {年收入>100k, 网上购物=是} → 年龄

    问题:这条规则真的有意义吗?还是随机波动?

    检验方法:

    • 零假设 H₀:满足规则前提的用户,其平均年龄不显著高于不满足前提的用户

    • 备择假设 H₁:满足规则前提的用户,其平均年龄显著高于不满足前提的用户

    检验统计量(Z检验):

    设:

    计算 Z 值:

    在 95% 置信度(单侧检验)下,临界值为 1.64。
    因为 3.11>1.64,拒绝零假设 → 规则具有统计显著性。

    💡 解读:满足规则前提的用户(高收入且网上购物),其平均年龄显著高于其他用户,且差异超过了预设的5岁阈值。

    4.3 业务价值:充当"伪规则过滤器"

    在海量挖掘结果中,统计假设检验充当过滤器的作用:

    • 自动剔除无意义的"伪规则"(随机波动造成的虚假关联)

    • 显著提升最终挖掘结果的质量与可用性


    第五部分:序列模式挖掘(Sequential Pattern Mining)

    5.1 什么是序列数据?

    与购物篮数据不同,序列数据包含了时间顺序信息。

    购物篮数据(无顺序):

    {牛奶, 面包, 啤酒}
    {尿布, 啤酒}

    序列数据(有顺序):

    <{首页} {电子产品} {计算机配件} {内存} {购物车} {结算}>
    <{高等数学, 线性代数} {概率统计, 数据库} {数据挖掘, 可视化}>

    • 花括号 {}:同一时刻发生的事件(可以包含多个项)

    • 尖括号 <>:表示先后顺序

    5.2 基本概念

    概念定义示例
    序列 元素(事务)的有序列表 <{a}, {b, c}, {d}>
    子序列 在原始序列中能找到顺序一致的对应项集 <{a}, {d}> 是 <{a}, {b, c}, {d}> 的子序列
    序列支持度 包含该序列的数据序列的比例 60% 的数据序列包含 <{a}, {d}>

    5.3 序列模式挖掘的Apriori算法

    目标:找出所有支持度 ≥ minsup 的序列。

    Step 1:找出所有频繁 1-序列(单个事件的序列)

    Step 2:产生候选 k-序列

    • 通过合并两个频繁 (k-1)-序列来生成候选 k-序列

    • 合并规则:序列 s₁ 与 s₂ 可以合并,当且仅当从 s₁ 的第一个元素中去掉一个事件后得到的子序列,与从 s₂ 的最后一个元素中去掉一个事件后得到的子序列相同

    Step 3:剪枝

    • 如果候选 k-序列的某个 (k-1)-子序列不是频繁的,则删除该候选

    Step 4:计算支持度

    • 遍历原始数据集,统计每个候选序列的出现次数

    5.4 合并规则的直观理解

    示例:假设有频繁 2-序列:

    • <{1}, {2}>

    • <{2}, {3}>

    可以合并为 <{1}, {2}, {3}>,因为 <{1}, {2}> 去掉最后一个事件得到 <{1}>,<{2}, {3}> 去掉第一个事件得到 <{2}>?不对,这里需要匹配更复杂的规则。

    实际上,合并需要满足:前者的后缀与后者的前缀相同。

    💡 本质:与Apriori候选项集生成类似,序列的候选生成也利用了"频繁序列的子序列必须频繁"这一原则进行剪枝。


    第六部分:本章核心总结

    6.1 属性处理方法速记

    属性类型处理方法适用场景
    类别型(取值多) 分组聚合(归入"其他") 减少项的数量
    类别型(分布偏斜) 删除高占比属性或取值 避免冗余规则
    连续型(离散化) 等宽/等深/聚类 转换为类别,适配关联规则
    连续型(统计方法) 假设检验(Z检验) 验证规则的统计显著性

    6.2 离散化选择建议

    场景推荐方法理由
    数据分布均匀,无异常值 等宽法 简单直观
    数据有异常值,分布不均 等深法 抗异常值,分布均衡
    追求最佳分组效果 聚类法 贴合数据内在规律
    不确定最佳区间 动态合并(窄→宽) 在支持度和置信度间找平衡

    6.3 序列模式 vs 关联规则

    维度关联规则序列模式
    顺序 不考虑顺序(同时出现) 考虑先后顺序
    表示 {A} → {B} <{A}, {B}>
    典型场景 购物篮分析 网站点击路径、课程先修关系

    6.4 核心公式速记卡

    赞(0)
    未经允许不得转载:171主机测评 » 10 关联分析进阶:属性处理与序列模式
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址