数据预处理

数据说明

数据模式

  • 结构化数据:行数据,可用二维表逻辑表达数据逻辑、存储在数据库中

    • 可以看作是关系型数据库中一张表
    • 行:记录、元组,表示一个样本信息
    • 列:字段、属性,有清晰定义
  • 非结构化数据:相对于结构化数据而言,不方便用二维逻辑表达的数据

    • 包含信息无法用简单数值表示
      • 没有清晰列表定义
      • 每个数据大小不相同
    • 研究方向
      • 社交网络数据
      • 文本数据
      • 图像、音视频
      • 数据流
    • 针对不同类型数据、具体研究方面有不同的具体分析方法,不存在普适、可以解决所有具体数据的方法
  • 半结构化数据:介于完全结构化数据、完全无结构数据之间的数据

    • 一般是自描述的,数据结构和内容混合、没有明显区分
    • 树、图(XMLHTML 文档也可以归为半结构化数据)
  • 结构化数据:先有结构、再有数据
  • 半结构化数据:先有数据、再有结构

数据拼接

  • 利用外键拼接不同来源的数据时,注意不同数据间粒度差异
    • 外键低于问题标签粒度时,考虑对数据作聚合操作再拼接
      • 保证拼接后用于训练的记录粒度和问题一致
      • 避免维度爆炸
      • 各数据来源数据厚薄不同,会改变数据分布
    • 外键高于、等于目标粒度时,可考虑直接直接连接

数据问题

稀疏特征

  • 产生原因
    • 数据缺失
    • 统计数据频繁 0 值
    • 特征工程技术,如:独热编码

缺失值

产生原因

  • 信息暂时无法获取、成本高
  • 信息被遗漏
  • 属性不存在

缺失值影响

  • 建模将丢失大量有用信息
  • 模型不确定性更加显著、蕴含规则更难把握
  • 包含空值可能使得建模陷入混乱,导致不可靠输出

缺失利用

  • 直接使用含有缺失值特征:有些方法可以完全处理、不在意缺失值

    • 分类型变量可以将缺失值、异常值单独作为特征的一种取值
    • 数值型变量也可以离散化,类似分类变量将缺失值单独分箱
  • 删除含有缺失值特征

    • 一般仅在特征缺失率比较高时才考虑采用,如缺失率达到 90%、95%

插值补全

  • 非模型补全缺失值

    • 均值、中位数、众数
    • 同类/前后均值、中位数、众数
    • 固定值
    • 矩阵补全
    • 最近邻补全:寻找与样本最接近样本相应特征补全
  • 手动补全:根据对所在领域理解,手动对缺失值进行插补

    • 需要对问题领域有很高认识理解
    • 缺失较多时费时、费力
  • 建模预测:回归、决策树模型预测

    • 若其他特征和缺失特征无关,预测结果无意义
    • 若预测结果相当准确,缺失属性也没有必要纳入数据集
  • 多重插补:认为待插补值是随机的

    • 通常估计处待插补值
    • 再加上不同噪声形成多组可选插补值
    • 依据某准则,选取最合适的插补值
  • 高维映射:one-hot 编码增加维度表示某特征缺失

    • 保留所有信息、未人为增加额外信息
    • 可能会增加数据维度、增加计算量
    • 需要样本量较大时效果才较好
  • 压缩感知:利用信号本身具有的稀疏性,从部分观测样本中恢复原信号

    • 感知测量阶段:对原始信号进行处理以获得稀疏样本表示
      • 傅里叶变换
      • 小波变换
      • 字典学习
      • 稀疏编码
    • 重构恢复阶段:基于稀疏性从少量观测中恢复信号

异常值

  • 异常值/离群点:样本中数值明显偏离其余观测值的个别值

异常值分析:检验数据是否有录入错误、含有不合常理的数据

非模型异常值检测

  • 简单统计

    • 观察数据统计型描述、散点图
    • 箱线图:利用箱线图四分位距对异常值进行检测
  • $3\sigma$ 原则:取值超过均值 3 倍标准差,可以视为异常值

    • 依据小概率事件发生可能性“不存在”
    • 数据最好近似正态分布

模型异常值检测

  • 基于模型预测:构建概率分布模型,计算对象符合模型的概率,将低概率对象视为异常点

    • 分类模型:异常点为不属于任何类的对象
    • 回归模型:异常点为原理预测值对象
    • 特点
      • 基于统计学理论基础,有充分数据和所用的检验类型知识时,检验可能非常有效
      • 对多元数据,可用选择少,维度较高时,检测效果不好
  • 基于近邻度的离群点检测:对象离群点得分由其距离 k-NN 的距离确定

    • k 取值会影响离群点得分,取 k-NN 平均距离更稳健
    • 特点
      • 简单,但时间复杂度高 $\in O(m^2)$,不适合大数据集
      • 方法对参数 k 取值敏感
      • 使用全局阈值,无法处理具有不同密度区域的数据集
  • 基于密度的离群点检测

    • 定义密度方法
      • k-NN 分类:k 个最近邻的平均距离的倒数
      • DSSCAN 聚类中密度:对象指定距离 d 内对象个数
    • 特点
      • 给出定量度量,即使数据具有不同区域也能很好处理
      • 时间复杂度 $\in O^(m^2)$,对低维数据使用特点数据结构可以达到 $\in O(mlogm)$
      • 参数难以确定,需要确定阈值
  • 基于聚类的离群点检测:不属于任何类别簇的对象为离群点

    • 特点
      • (接近)线性的聚类技术检测离群点高度有效
      • 簇、离群点互为补集,可以同时探测
      • 聚类算法本身对离群点敏感,类结构不一定有效,可以考虑:对象聚类、删除离群点再聚类
      • 检测出的离群点依赖类别数量、产生簇的质量
  • One-class SVM

  • Isolation Forest

异常值处理

  • 删除样本

    • 简单易行
    • 观测值很少时,可能导致样本量不足、改变分布
  • 视为缺失值处理

    • 作为缺失值不做处理
    • 利用现有变量信息,对异常值进行填补
    • 全体/同类/前后均值、中位数、众数修正
    • 将缺失值、异常值单独作为特征的一种取值
  • 很多情况下,要先分析异常值出现的可能原因,判断异常值是否为真异常值

类别不平衡问题

创造新样本

  • 对数据集重采样

    • 尝试随机采样、非随机采样
    • 对各类别尝试不同采样比例,不必保持 1:1 违反现实情况
    • 同时使用过采样、欠采样
  • 属性值随机采样

    • 从类中样本每个特征随机取值组成新样本
    • 基于经验对属性值随机采样
    • 类似朴素贝叶斯方法:假设各属性之间相互独立进行采样,但是无法保证属性之前的线性关系
  • 对模型进行惩罚

    • 类似 AdaBoosting:对分类器小类样本数据增加权值
    • 类似 Bayesian分类:增加小类样本错分代价,如:penalized-SVMpenalized-LDA
    • 需要根据具体任务尝试不同惩罚矩阵

新角度理解问题

  • 将小类样本视为异常点:问题变为异常点检测、变化趋势检测

    • 尝试不同分类算法
    • 使用 one-class 分类器
  • 对问题进行分析,将问题划分为多个小问题

    • 大类压缩为小类
    • 使用集成模型训练多个分类器、组合
  • 需要具体问题具体分析

模型评价

  • 尝试其他评价指标:准确度在不平衡数据中不能反映实际情况
    • 混淆矩阵
    • 精确度
    • 召回率
    • F1 得分
    • ROC 曲线
    • Kappa

数据量缺少

图片数据扩充

Data Agumentation:根据先验知识,在保留特点信息的前提下,对原始数据进行适当变换以达到扩充数据集的效果

  • 对原始图片做变换处理

    • 一定程度内随机旋转、平移、缩放、裁剪、填充、左右翻转,这些变换对应目标在不同角度观察效果
    • 对图像中元素添加噪声扰动:椒盐噪声、高斯白噪声
    • 颜色变换
    • 改变图像亮度、清晰度、对比度、锐度
  • 先对图像进行特征提取,在特征空间进行变换,利用通用数据 扩充、上采样方法

    • SMOTE
  • Fine-Tuning 微调:直接接用在大数据集上预训练好的模型,在小数据集上进行微调

    • 简单的迁移学习
    • 可以快速寻外效果不错针对目标类别的新模型

特征缩放

  • 正则化:针对单个样本,将每个样本缩放到单位范数
  • 归一化:针对单个属性,需要用到所有样本在该属性上值

Normalizaion

归一化/标准化:将特征/数据缩放到指定大致相同的数值区间

  • 某些算法要求数据、特征数值具有零均值、单位方差
  • 消除样本数据、特征之间的量纲/数量级影响
    • 量级较大属性占主导地位
    • 降低迭代收敛速度:梯度下降时,梯度方向会偏离最小值,学习率必须非常下,否则容易引起宽幅震荡
    • 依赖样本距离的算法对数据量机敏感
  • 决策树模型不需要归一化,归一化不会改变信息增益(比),Gini 指数变化

Min-Max Scaling

线性函数归一化:对原始数据进行线性变换,映射到 $[0, 1]$ 范围

  • 训练集、验证集、测试集都使用训练集归一化参数

Z-Score Scaling

零均值归一化:将原始数据映射到均值为 0,标准差为 1 的分布上

其他一些变换方式

  • 对数变换:$X^{‘} = lg(X)$
  • 反余切函数变换:$X^{‘} = \frac {2 arctan(x)} {\pi}$
  • Sigmoid 变换:$X^{‘} = \frac 1 {1 + e^{-x}}$
  • 模糊向量变:$X^{‘} = \frac 1 2 + \frac 1 2 sin \frac {X - \frac{max(X) - min(X)} 2} {max(X) - min(X)} * \pi$

Regularization

正则化:将样本/特征某个范数缩放到单位 1

  • $L_p$:样本的 $L_p$ 范数
  • 使用内积、二次型、核方法计算样本之间相似性时,正则化很有用

文本预处理

文本预处理

  • 去除噪声文档、文档中垃圾数据
  • 停用词去除
  • 词根还原(英文)
  • 分词(中文)
  • 词性标注
  • 短语识别
  • 词频统计

汉语分词

分词:添加合适的显性词语边界标志,使所形成的词串反映句子本意

  • 分词是正确处理中文信息的基础

    • 文本基于单字
    • 书面表达方式以汉字作为最小单位
    • 词之间没有显性界限标志
  • 用单个汉字作特征,不考虑词语含义,直接利用汉字在文本中 出现的统计特性对文本进行划分

    • 直观明了
    • 操作简单
    • 对西语文本划分非常容易(使用空格划分)
  • 使用词作为特征

    • 词是中文语义的最小信息单位,可以更好的反映句子中信息
    • 分析难度更高,中文文本中词之间没有分隔标记,正确分词 是关键

分词方法

  • 基于词典

    • FMM:正向最大匹配分词
    • BMM:逆向最大匹配分词
    • BM法:双向扫描法
    • 逐词遍历
  • 基于统计模型

    • N-最短路径
    • HMM
    • N元语法
    • 由字构词的汉语分词方法

分词难点

歧义切分

  • 分词规范

    • 分词单位
      • 二字、三字以及结合紧密、使用稳定的
      • 四字成语
      • 四字词或结合紧密、使用稳定的四字词组
    • 五字、五字以上谚语、格言等,分开后如不违背原有组合 意义,应切分
  • 歧义切分

    • 交集型切分歧义
    • 组合型切分歧义

未登录词识别

  • 词表词:记录在词表中的词
  • 未登录词:词表中没有的词、或已有训练语料中未曾出现词 (此时也称为out of vocabulary
  • 真实文本切分中,未登录词总数大约9成是专有名词,其余为 新词

  • 未登录词对分词精度影响是歧义词的10倍

  • 命名实体识别:实体名词、专业名词

    • 界定规则不存在太大分歧、构成形式有一定规律
    • 在文本中只占8.7%,引起分词错误率59.2%

词性标注

词性标注:在给定句子中判定每个词的语法范畴,确定词性并加以 标注的过程

  • POS作为特征可以更好的识别词语之间关系

    • 词性标注计数为phrase chunking词组组块的界定、 entities and relationship实体与关系的识别打下良好 基础,有利于深入探索文本语义信息

    • 词组的形式提高了特征向量的语义含量,使得向量更稀疏

  • 难点

    • 汉语缺乏词形态变化
    • 常用词兼类现象严重:占11%
    • 研究者主观原因:不同语料库有不同规定、划分方法
  • part of speechPOS,词性

Forward Maximum Matching Method

FMM:正向最大匹配分词

  • 步骤

    • 记词典中最长此表包含汉字数量为M
    • 从材料中选取前$m = M$个汉字去作为匹配字段,查找分词 词典
      • 若存在匹配词,则将其切分出
      • 否则$m = m - 1$,重复
    • 重复直至材料分词完毕
  • 特点

    • 对交叉歧义、组合歧义没有解决办法
    • 错误切分率为$\frac 1 {169}$

Backward Maximum Matching Method

BMM:逆向最大匹配分词

  • 步骤:类似FMM,仅从材料/句子末尾开始处理

  • 特点

    • 错误切分率$\frac 1 {245}$,较FMM更有效

Bi-direction Matching Method

BM法:双向扫描法

  • 步骤:比较FMM、BMM法切分结果,决定正确切分

  • 特点

    • 可以识别分词中交叉语义

N-最短路径

  • 思想

    • 考虑待切分字串$S=c_1 c_2 \cdots c_n$,其中$c_i$为 单个字、$n$为串长

    • 建立节点数为$n+1$的切分有向无环图,各节点编号为 $V_0, V_1, \cdots, V_n$

      • 相邻节点间存在边
      • 若$w=ci c{i+1} \cdots cj$是一个词,则节点 $v{i-1}, v_j$直接存在边
      • 所有边距离均为1
    • 求有图无环图中最短路径

特点

  • 算法时间复杂度为$O(nNK)$

    • $n$:字串长度
    • $N$:最短路径数目
    • $k$:某个字作为词末端字的平均次数

改进—考虑噪声

基于统计信息的粗分模型

  • 考虑词串$W$经过信道传输,由于噪声干扰丢失词界切分标志, 到输出端为字串$C$

  • N-最短路径词语粗分模型可以改进为:求N个候选切分$W$,使得 概率$P(W|C)$为前N个最大值

    • $P(C)$:字串概率,常数
    • $P(C|W)$:仅有
  • 采用一元统计模型,设$W=w_1w_2\cdots W_m$是字串 $S=c_1c_2\cdots c_n$的切分结果,则其切分概率为

    • $P(w_i)$:词$w_i$出现概率,在大规模预料训练的基础上 通过极大似然方法得到
  • 则$-lnP(w_i)$可看作是词$w_i$在切分有向无环图中对应距离, 改进N-最短路径方法

由字构词

假设、背景

  • 思想:将分词过程看作字分类问题,认为每个字在构造特定词语 时,占据确定的位置
  • 中文词一般不超过4个字,字位数量很小
    • 首部B
    • 词中M
    • 词尾E
    • 单独成词S
  • 部分汉字按一定方式分布,有规律
  • 利用相对固定的字推断相对不定的字的位置问题
  • 虽然无法将所有词列入词典,但字基本稳定

步骤

  • 对所有字根据预定义的特征进行词位特征学习,获得概率 模型
  • 在带待分字串上根据字与字之间的结合紧密程度得到词位的分类 结果
  • 根据词位定义直接获得最终分词结果

Productivity

能产度:词$c_i$在词位$t_j$的能产度定义为

  • $T = {B, B_2, B_3, M, E, S}$
  • 主词位:给定字在其上能产度高于0.5的词位

    |标记|B|B2|B3|M|E|S|总字量| |——-|——-|——-|——-|——-|——-|——-|——-| |字量|1634|156|27|33|1438|632|3920| |百分比|31.74|3.03|0.52|0.64|27.94|12.28|76.16|

    • MSRA2005语料库中有主词位的字量分布
  • 自由字:没有主词位的字

    • 自由字是基于词位分类的分词操作得以有效进行的的基础 之一
  • 字:不仅限于汉字,包括标点、外文字母、注音符号、数字等 任何可能文字符号

优势

  • 能平衡词表词、未登录词
  • 简化分词系统设计
    • 无需强调词表词信息
    • 无需设置特定未登录词识别模块

分词评价指标

  • 正确率
  • 召回率
  • F-测度值

Vector Space Model

向量空间模型:自然语言处理常用模型

  • document:文档,句子、段落、整篇文章
  • term/feature:词根、词、短语、其他
  • weight:项的权重,每个特征项在文档中重要程度

相似度比较

  • 内积

  • Cosine相似度

权重

  • 布尔权重:$bw_{t,d} = {0, 1}$
  • TF:绝对词频,$TF{t,d} = \frac {n{t,d}} {n_d}$
  • IDF:倒排文档频度,$IDF_{t,d} = log \frac M {m_t}$
  • TF-IDF:$TF-IDF{t,d} = TF{t,d} * IDF_{t,d}$
  • TF-IWF:$TFIWF{t,d}= TF{t,d} log \frac {\sum{t=1}^T \sum{d=1}^N n{t,d}} {\sum{t=1} n{t,d}}$
  • $t_{t,d}$:文档$d$中出现特征$t$的次数
  • $t_d$:文档$d$中出现总词数
  • $m_t$:训练集中出现特征$t$文档数
  • $M$:训练集中文档总数
  • $K$:特征总数量

特征加权

  • 特征加权主要包括三个部分(层次)

    • 局部加权:使用词语在文档中的统计量
    • 全局加权:词语在整个数据集中的统计量
    • 标准化
  • 一般化特征加权表达式

    • $L_d(w)$:词$w$在文档$d$中的局部权重
    • $G(w)$:词$w$在文档集合中的全局权重
    • $N_d$:文档d的标准化因子

Document Frequency

DF:文档频率,文本数据中包含某词条的文档数目

  • 通过文档频率进行特征选择:按文档频率大小对词条进行排序

    • 将DF小于某阈值的词删除

      • 稀有词项全局影响力不大
      • 文档若有稀有词向,通常也会有常见词项
      • 和通常信息获取观念抵触:稀有更有代表性
    • 将DF大于某阈值的词删除

      • 太频繁词词项没有区分度
  • 容易实现、可扩展性好

其他指标

  • 信息增益/互信息

  • 卡方统计量

Latent Semantic Analysis

LSA:潜在语义分析

  • 文本分析中常用的降维技术

    • 特征重构方法
    • 很好解决了同义词、一词多义等现象给文本分析造成的困难
  • 理论依据、假设

    • 认为有潜在语义结构隐含在文档中词语的上下文使用模式中
    • 而文档词频共现矩阵在一定程度可以反映词和不同主题之间 关系
  • 以文档词频矩阵为基础进行分析

    • 得到向量空间模型中文档、词的高维表示
    • 并通过投影形成文档、词在潜在语义空间中的相对稠密的 低维表示,缩小问题规模
    • 通过这种低维表示解释出“文档-语义-词语”之间的联系
  • 数学描述

    • LSA将每个文本视为以词语/特征为维度的空间的点,包含 语义的文本出现在空间中分布服从某种语义结构
    • LSA将每个词视为以文档为维度的空间中点
    • 文档由词语构成,词语需要放在文档中理解,体现词语和 文档之间的双重概率关系

应用SVD分解

  • 词频共现矩阵$X=(x_{d,t})$:文档、词语的共现频率矩阵

    • 其中每行代表文档向量
    • 每列代表词语向量
    • 元素$x_{d,t}$表示文档$d$中词$t$出现的频率
  • 对词频共现矩阵$X$进行SVD分解得到$X=U \Sigma V^T$

  • 仅保留$\Sigma$中满足阈值要求的较大的前$r$特征值, 其余置为0,得到 $\tilde X = \tilde U \tilde \Sigma \tilde V^T$,达到信息 过滤、去除噪声的目的

    • $A = \tilde X$:矩阵特征分解后的文档词频矩阵近似
    • $T = \tilde U$:文档和潜在语义的关系矩阵近似
    • $S = \tilde V$:词语和潜在语义的关系矩阵近似
    • $D = \tilde \Sigma$:各潜在语义的重要程度

说明

  • 从数据压缩角度:近似矩阵是秩为$K$的前提下,矩阵$X$的最小 二乘意义下最佳近似

  • r值过大会增加运算量,一般选择K使得贡献率满足

    • $\theta$:阈值
    • $K$:原始词频共现矩阵秩
  • LSA缺点

    • SVD的向量元素有正、有负,性质难以解释
    • SVD的实际意义不够明确,难以控制词义据类的效果
    • 涉及高维矩阵运算

相似关系计算

  • 潜在语义空间中存在:词-词、文本-文本、词-文本3种关系, 可以通过近似矩阵$T, S, D$计算

  • 比较词汇两两相似度:“正向乘法”

  • 比较文本两两相似度:“逆向乘法”

  • 词汇、文本两两相似度:就是原始矩阵$X$的近似矩阵本身$A$