Notes on 数据挖掘
绪论
数据的特点:有效、有用、非直观
邦弗朗尼原理:避免过度挖掘
聚类
K-Means
基本流程
- 选择类的数目
- 根据最终类的平均半径选取
- 初始化每个类:选取一个点作为中心
- 随机选取一个点,然后尽量发散地选取其它点
- 将每个点放入到类中心最近的类
- 调整每个类的中心
- 重复3~4
目标函数
计算复杂度
线性
例:BFR算法-在高维欧式空间进行聚类
基本假设
簇是以簇心为期望的正态分布
三种对象
废弃集、压缩集(迷你簇)、留存集
基本流程
- 加载一个块到内存
- 将块中离类中心足够近的点放入该类并放入废弃集
- 马氏距离
- 将其他点与留存集内的点进行聚类,并将这些类加入压缩集
- 调整每个类的类中心
- 将距离近的压缩集合并
- 重复1~5,直到最后一轮
- 将压缩集和留存集放入最近的簇
层次聚类
分裂式、合并式
非线性聚类
在复杂数据下被经常使用
社区网络
模块度(Modularity)算法
目的
选取社区个数
目标函数
-
:相连为 1,不相连为 0
:顶点度数
-
: 和 间变的期望数量
归一化割(Normalized-cut)算法
目标函数
优点
相比最小割,可以使得分割后的社区网络大小更加平衡
推荐系统
基于内容
特点
考察项的性质与用户模型的匹配度
优点
- 不需要其他用户的数据,可以单独评价某一用户
- 处理新的项或不流行的项较容易
- 可解释性强
缺点
- 难以寻找合适的特征作为项的性质
- 难以评价新的用户
- 不能利用其他用户给予的信息
基于协同过滤
特点
考察相似的用户对项的评价来判断匹配度
优点
- 适用于各种类型的项,不用选取特征
- 充分利用不同用户给予的信息
缺点
- 需要大量的用户的数据
- 用户的评价矩阵稀疏
- 难以评价新的或不流行的项
- 具有关注度偏差
数据流挖掘
基本策略
查找近似解,侧重最近的样本点信息
数据抽样
固定比例(fixed proportion)
hash算法
固定大小(fixed size)
蓄水池算法(Reservoir Sampling)
-
基本流程
- 选定蓄水池大小为
- 将前 个数据放入蓄水池
- 对于第 个数据,以 的概率随机替换蓄水池中的元素
-
证明:算法可以抽取精确比例的样本
-
当 时,每个元素选中概率为 1。
-
假设 时,每个元素被选中概率为
-
当 时,蓄水池中元素被保留的概率为
第 个元素加入蓄水池的概率也为 -
由数学归纳法,抽取比例为
-
窗口计数
DGIM算法
基本流程
- 利用桶(bucket)对滑动窗口进行划分
- 每个桶保存以下信息
- 桶的大小,该数目为2的幂
- 桶的最右边位即最后进入流的位的时间戳
- 桶中1的个数
- 对滑动窗口进行划分时遵循以下5条规则
- 桶最右边的位必须是1
- 1个位最多属于1个桶
- 每种大小的桶有1个或者2个
- 每个桶的大小是2的幂
- 桶的大小从右到左非降序排列
- 每个桶保存以下信息
- 有新加入的位时,对桶进行更新
- 如果最左边的桶已经没有处于窗口中的位,则丢弃这个桶
- 新加入的位如果其为0,则无操作;否则建立一个包含新加入位的大小为1的桶
- 从右往左将连续出现三个相同大小的桶的左边两个进行合并
- 查询最近 位
- 寻找含查询位的最左的桶
- 查询结果为 右边所有桶包含1的数量总和,加上b的大小的一半
估计值误差(fractional error)
- 至少是正确值的50%:最差情况b中都是1
- 最多超过正确值的50%:最差情况b只有最右边一位为1
PageRank
基本流程
-
所有网页初始值为
-
使用幂迭代(Power Iteration)直到收敛
-
证明:幂迭代可以计算出 的主特征向量
设 有 个特征向量分别为 ,分别对应特征值
不失一般性假设
由于当 时 ,则
-
终止点与采集器陷阱
终止点
没有出链的网页
采集器陷阱
一系列没有指向集合之外的节点的集合
抽税法
进行随机跳转(teleport),避免终止点和采集器陷阱
在线广告
在线二分图匹配
最大匹配
极大匹配(Maximal Matching):在当前已完成的匹配下,无法再增加匹配边的匹配
最大匹配(maximum matching):所有极大匹配当中边数最大的一个匹配
完全匹配
所有的顶点都是匹配点的匹配
贪心算法
优先匹配最大收益的边
竞争率
在最差的情况下,在线算法匹配数与离线算法匹配数之比
证明:贪心算法竞争率
设 为最大匹配, 为贪心算法匹配
为在 中匹配但在 中不匹配的左节点的集合, 为 中所有左顶点所连接的右顶点的集合
可以得到
由 可得到 ,再结合 可以得到 ,即
频繁项集
基本定义
项集
包含 个二值属性项(item)构成的集合
支持度
频繁项集
其中 为支持度阈值
最大频繁项集
任意超集均是非频繁项集的频繁项集
闭合项集
任意超集的支持度均小于本身的支持度的项集
关联规则
表示集合 出现引起 出现
其中, 且
置信度
兴趣度
A-priori算法
原理
如果一个项集是非频繁的,那么它的所有超集也是非频繁的
基本流程
- 对所有项计数,去除非频繁的项
- 剩下的项进行组合以生成包含两个元素的二元项集
- 类似地,使用剩余项集组成多元组,直到所有项集都被去掉
相似项发现
Shingling
k-shingle
文档中任意长度为k的子串
文档签名
特征矩阵的最小hash
选择行的任意一个重置后,每行排列次序下第一个列值为1的行号组成的向量
最小hash与Jaccard相似度
Jaccard相似度
关联
两个集合置换后的最小哈希值相等的概率等于Jaccard相似度
最小hash签名
随机选取 个置换,得到的最小hash 构成的向量
计算签名矩阵
设 为签名矩阵中第 个hash函数在第 列上的元素
- 初始化 为
- 计算
- 如果 在 行为 0,则什么也不做;否则,将 替换为
局部敏感hash
使用局部敏感hash函数线性时间区分低距离对和高距离对