Notes on 数据挖掘

绪论

数据的特点:有效、有用、非直观

邦弗朗尼原理:避免过度挖掘

聚类

K-Means

基本流程

  1. 选择类的数目
    • 根据最终类的平均半径选取
  2. 初始化每个类:选取一个点作为中心
    • 随机选取一个点,然后尽量发散地选取其它点
  3. 将每个点放入到类中心最近的类
  4. 调整每个类的中心
  5. 重复3~4

目标函数

计算复杂度

线性

例:BFR算法-在高维欧式空间进行聚类

基本假设

簇是以簇心为期望的正态分布

三种对象

废弃集、压缩集(迷你簇)、留存集

基本流程
  1. 加载一个块到内存
  2. 将块中离类中心足够近的点放入该类并放入废弃集
    • 马氏距离
  3. 将其他点与留存集内的点进行聚类,并将这些类加入压缩集
  4. 调整每个类的类中心
  5. 将距离近的压缩集合并
  6. 重复1~5,直到最后一轮
  7. 将压缩集和留存集放入最近的簇

层次聚类

分裂式、合并式

非线性聚类

在复杂数据下被经常使用

社区网络

模块度(Modularity)算法

目的

选取社区个数

目标函数

  • :相连为 1,不相连为 0

    :顶点度数

  • : 和 间变的期望数量

归一化割(Normalized-cut)算法

目标函数

优点

相比最小割,可以使得分割后的社区网络大小更加平衡

推荐系统

基于内容

特点

考察项的性质与用户模型的匹配度

优点

  1. 不需要其他用户的数据,可以单独评价某一用户
  2. 处理新的项或不流行的项较容易
  3. 可解释性强

缺点

  1. 难以寻找合适的特征作为项的性质
  2. 难以评价新的用户
  3. 不能利用其他用户给予的信息

基于协同过滤

特点

考察相似的用户对项的评价来判断匹配度

优点

  1. 适用于各种类型的项,不用选取特征
  2. 充分利用不同用户给予的信息

缺点

  1. 需要大量的用户的数据
  2. 用户的评价矩阵稀疏
  3. 难以评价新的或不流行的项
  4. 具有关注度偏差

数据流挖掘

基本策略

查找近似解,侧重最近的样本点信息

数据抽样

固定比例(fixed proportion)

hash算法

固定大小(fixed size)

蓄水池算法(Reservoir Sampling)
  • 基本流程

    1. 选定蓄水池大小为
    2. 将前 个数据放入蓄水池
    3. 对于第 个数据,以 的概率随机替换蓄水池中的元素
  • 证明:算法可以抽取精确比例的样本

    1. 当 时,每个元素选中概率为 1。

    2. 假设 时,每个元素被选中概率为

    3. 当 时,蓄水池中元素被保留的概率为

      第 个元素加入蓄水池的概率也为

    4. 由数学归纳法,抽取比例为

窗口计数

DGIM算法

基本流程
  1. 利用桶(bucket)对滑动窗口进行划分
    • 每个桶保存以下信息
      • 桶的大小,该数目为2的幂
      • 桶的最右边位即最后进入流的位的时间戳
      • 桶中1的个数
    • 对滑动窗口进行划分时遵循以下5条规则
      • 桶最右边的位必须是1
      • 1个位最多属于1个桶
      • 每种大小的桶有1个或者2个
      • 每个桶的大小是2的幂
      • 桶的大小从右到左非降序排列
  2. 有新加入的位时,对桶进行更新
    • 如果最左边的桶已经没有处于窗口中的位,则丢弃这个桶
    • 新加入的位如果其为0,则无操作;否则建立一个包含新加入位的大小为1的桶
    • 从右往左将连续出现三个相同大小的桶的左边两个进行合并
  3. 查询最近 位
    • 寻找含查询位的最左的桶
    • 查询结果为 右边所有桶包含1的数量总和,加上b的大小的一半
估计值误差(fractional error)
  • 至少是正确值的50%:最差情况b中都是1
  • 最多超过正确值的50%:最差情况b只有最右边一位为1

PageRank

基本流程

  1. 所有网页初始值为

  2. 使用幂迭代(Power Iteration)直到收敛

    • 证明:幂迭代可以计算出 的主特征向量

      设 有 个特征向量分别为 ,分别对应特征值

      不失一般性假设
      \begin{align} r^{(0)}&=c_1x_1+c_2x_2+\dots+c_nx_n\\\\ Mr^{(0)}&=M(c_1x_1+c_2x_2+\dots+c_nx_n)\\ &=c_1\lambda_1x_1+c_2\lambda_2x_2+\dots+c_n\lambda_nx_n\\\\ M^kr^{(0)}&=M(c_1x_1+c_2x_2+\dots+c_nx_n)\\ &=c_1\lambda_1^kx_1+c_2\lambda_2^kx_2+\dots+c_n\lambda_n^kx_n\\ &=\lambda_1^k[c_1x_1+c_2(\frac{\lambda_2}{\lambda_1})^kx_2+\dots+c_n(\frac{\lambda_n}{\lambda_1})^kx_n] \end{align}
      由于

      当 时 ,则

终止点与采集器陷阱

终止点

没有出链的网页

采集器陷阱

一系列没有指向集合之外的节点的集合

抽税法

进行随机跳转(teleport),避免终止点和采集器陷阱

在线广告

在线二分图匹配

最大匹配

极大匹配(Maximal Matching):在当前已完成的匹配下,无法再增加匹配边的匹配

最大匹配(maximum matching):所有极大匹配当中边数最大的一个匹配

完全匹配

所有的顶点都是匹配点的匹配

贪心算法

优先匹配最大收益的边

竞争率

在最差的情况下,在线算法匹配数与离线算法匹配数之比

证明:贪心算法竞争率

设 为最大匹配, 为贪心算法匹配

为在 中匹配但在 中不匹配的左节点的集合, 为 中所有左顶点所连接的右顶点的集合

可以得到

由 可得到 ,再结合 可以得到 ,即

频繁项集

基本定义

项集

包含 个二值属性项(item)构成的集合

支持度

频繁项集

其中 为支持度阈值

最大频繁项集

任意超集均是非频繁项集的频繁项集

闭合项集

任意超集的支持度均小于本身的支持度的项集

关联规则

表示集合 出现引起 出现

其中, 且

置信度

兴趣度

A-priori算法

原理

如果一个项集是非频繁的,那么它的所有超集也是非频繁的

基本流程

  1. 对所有项计数,去除非频繁的项
  2. 剩下的项进行组合以生成包含两个元素的二元项集
  3. 类似地,使用剩余项集组成多元组,直到所有项集都被去掉

相似项发现

Shingling

k-shingle

文档中任意长度为k的子串

文档签名

特征矩阵的最小hash

选择行的任意一个重置后,每行排列次序下第一个列值为1的行号组成的向量

最小hash与Jaccard相似度

Jaccard相似度

关联

两个集合置换后的最小哈希值相等的概率等于Jaccard相似度

最小hash签名

随机选取 个置换,得到的最小hash 构成的向量

计算签名矩阵

设 为签名矩阵中第 个hash函数在第 列上的元素

  1. 初始化 为
  2. 计算
  3. 如果 在 行为 0,则什么也不做;否则,将 替换为

局部敏感hash

使用局部敏感hash函数线性时间区分低距离对和高距离对

你可能感兴趣的:(Notes on 数据挖掘)