基于压缩的模式挖掘:理论与实践
在数据挖掘领域,如何高效地挖掘出能准确捕捉数据分布的模式集是一个关键问题。本文将深入探讨基于压缩的模式挖掘方法,包括柯尔莫哥洛夫复杂度、最小描述长度(MDL)等理论基础,以及如何利用这些理论构建模式模型。
1. 柯尔莫哥洛夫复杂度
柯尔莫哥洛夫复杂度用于衡量字符串 $s$ 的信息含量,任何数据库 $D$ 都可以序列化为一个字符串。字符串 $s$ 的柯尔莫哥洛夫复杂度 $K_U(s)$ 定义为通用图灵机 $U$ 生成 $s$ 并停止所需的最短程序 $p$ 的比特长度,形式化表示为:
[K_U(s) = \min_{p:U(p)=x}|p|]
直观上,程序 $p$ 可以看作是 $s$ 的终极压缩器。
每个字符串 $s$ 至少有一个生成它的程序,即直接输出 $s$ 的程序 $p_0$。如果字符串是完全随机的,那么没有比 $p_0$ 更短的程序,这给出了柯尔莫哥洛夫复杂度的上界。当 $K(s)$ 小于 $p_0$ 的长度时,数据表现出结构,而程序 $p$ 是这种结构的最短描述。
柯尔莫哥洛夫复杂度的下界接近零,当数据 $s$ 可以用简单算法表达时会接近这个下界。例如,一长串相同的值(如 000000000…),以及乍一看复杂但生成过程相对简单的数据(如 $\pi$ 的前 $n$ 位、分形),它们的柯尔莫哥洛夫复杂度都很低。
实际上,程序 $p$ 可以分为两部分:描述 $s$ 可压缩结构的“算法”和表达 $s$ 不可压缩部分的“输入”。分离给定数据集中的这两个组件正是探索性数据分析的目标,因此柯尔莫哥洛夫复杂度提供了一个理想的标准。
然而,$K(s)$ 是不可计算的。一方面,可能
超级会员免费看
订阅专栏 解锁全文
1684

被折叠的 条评论
为什么被折叠?



