数据探索

数据清洗—>缺失值?

  • 缺失值的原因
    • 信息暂时无法获取。如商品售后评价
    • 信息被遗漏。可能是因为输入时认为不重要、忘记填写了或对数据理解错误而遗
    • 获取这些信息的代价太大。如统计某校所有学生每个月的生活费,家庭实际收入等等。
    • 有些对象的某个或某些属性是不可用的。如一个未婚者的配偶姓名、一个儿童的固定收入状况等
  • 处理方法
    • 缺失值较多直接舍弃该特征
    • 缺失值较少(<10%):填充处理
  • 缺失值填充的方法
    • 异常值填充:将缺失值作为一种情况处理0
    • 均值/条件均值填充:
    • 均值:对于数值类型属性,可采用所有样本的该属性均值,
    • 非数值类型,可采用所有样本的众数
    • 最近距离法K-means:先根据欧式距离或相关分析来确定距离具有缺失数据样本最近的K个样本,将这K个值加权平均来估计该样本的缺失数据
    • 算法拟合填充:对有值的数据采用随机森林等方法拟合,然后对有缺失值的数据进行预测,用预测的值来填充
  • 具体算法的缺失值处理

    • LR:如上所述
    • 决策树:详见第15点
    • XGBoost:将样本分别分配到左孩子和右孩子,选择增益大的方向分裂即可;如果在训练中没有缺失值而在预测中出现缺失,那么会自动将缺失值的划分方向放到右子树

      如何发现数据中的异常值?

      看分布?
  • 简单统计分析,找到不合理的,比如年龄超过100岁

  • 特征相似,但结果很偏离,比如相似的机型,购买率差别很大,或者如下图

image.png

  • 特征偏离

    • 3δ原则
      • 当数据服从正态分布,根据正态分布的定义可知,距离平均值3δ之外的概率为 P(|x-μ|>3δ) <= 0.003 ,这属于极小概率事件,在默认情况下我们可以认定,距离超过平均值3δ的样本是不存在的。 因此,当样本距离平均值大于3δ,则认定该样本为异常值。
      • 当数据不服从正态分布,可以通过远离平均距离多少倍的标准差来判定,多少倍的取值需要根据经验和实际情况来决定。
    • 箱型图分析

      怎样选择有用的特征?

      知乎的回答
  • 决策树输出特征重要性

  • 特征归一化后,逻辑回归的权重

    数值特征

    为什么需要对数值类型的特征做归一化?离散化?

  • 归一化

    • Min-Max Scaling:将结果映射到[0,1]范围
    • Z-Score归一化:将原始数据映射到均值为0,标准差为1的分布上
  • 原因:

image.png

离散化:分段,等频等距。当数值的绝对大小和排序对结果没有影响时,只需分类即可。

标准化和归一化异同?如何选择?

  • 异同:

都是线性变换,将原有数据进行了放缩,数据的大小顺序没有发生改变,影响归一化的主要是两个极值,而标准化里每个数据都会影响,因为计算均值和标准差。

  • 归一化一般放缩到[0,1]
  • 标准化则转为服从标准正态分布
    • 如何选择
  • 如果对输出结果范围有要求,用归一化
  • 如果数据较为稳定,不存在极端的最大最小值,用归一化
  • 如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响


    类别特征

    如何处理类别特征?

  • 序号编码:通常用于处理类别建具有大小关系的数据
  • one-hot编码:用于处理类别建不具有大小关系的特征。但是当类别取值较多的时候需要注意 (1) 用向量的稀疏表示来节省空间 (2) 配合特征选择来降低维度。

    一是在K近邻算法中,高维空间下两点之间的距离很难得到有效的衡量;二是在逻辑回归模型中,参数的数量会随着维度的增高而增加,容易引起过拟合问题;三是通常只有部分维度是对分类、预测有帮助,因此可以考虑配合特征选择来降低维度。

  • 二进制编码:先用序号编码给每个类别赋予一个类别id,然后将类别id转为二进制编码,本质上是利用二进制对id进行了hash映射,得到0-1特征向量,且维度少于one-hot编码。

组合特征

什么是组合特征?如何处理高维组合特征?

《百面》P06

怎样有效地找到组合特征?

《百面》P09

决策树:每一条从根节点到叶节点的路径都可以看成一种特征组合的方式。

高维特征

如何处理高维特征?比如用户ID和内容ID?

文本特征

文本特征表示有哪些模型?他们的优缺点都是什么?

《百面》P11

  • 词袋模型
    • image.png
    • N-gram:将连续出现的n个词组成词组作为一个单独的特征放到向量表示中
  • 主题模型:能够计算出每篇文章的主题分布
  • 词嵌入模型:将词映射成K维的向量。再利用卷积神经网络和循环神经网络对其进行建模,提取文本的特征。

    讲解TF-IDF原理,它有什么优点和缺点?针对它的缺点,你有什么优化思路?

    优点是简单快速,结果比较符合实际情况。缺点是,单纯以”词频”衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。而且,这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的。
    全文的第一段和每一段的第一句话,给予较大的权重。

    N-gram算法是什么?有什么优缺点?

    优点在于它包含了前N-1个词所能提供的全部信息,这些词对于当前词的出现具有很强的约束力,然而它的缺点是需要相当规模的训练文本来确定模型的参数。当N很大时,模型的参数空间过大。

    Word2Vec (具体看word2vec那一节

    讲解一下word2vec工作原理?损失函数是什么?

    有两种网络结构,分别是CBOW(上下文预测一个词)和Skip-gram(一个词预测上下文)
    损失函数一般用交叉熵
    详细:https://www.cnblogs.com/pinard/p/7243513.html

    Skip-gram和cbow有何异同?

    skip-gram是根据一个词预测其上下文,cbow是根据上下文预测改词。

负采样和hierachicalSoftmax ??

讲解一下LDA模型原理和训练过程?

Word2vec和LDA两个模型有什么区别和联系?

LDA利用文档中单词的共现关系来对单词按主题聚类,也可以理解为对“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布,而 Word2Vec其实是对“上下文-单词”矩阵进行学习,其中上下文由周围的几个单词组成,由此得到的刺向了表示更多地融入了上下文共现的特征,也就是说,如果两个单词所对应的Word2Vec向量相似度高,那么他们很可能经常在相同的上下文中出现。

主题模型和词嵌入两类方法最大的不同其实在于模型本身,主题模型是一种基于概率图模型的生成式模型,其似然函数可以写成若干条件概率连乘的形式,其中包括需要推测的隐含变量(即主题),而词嵌入模型一般表达为神经网络的形式,似然函数定义在网络的输出之上,需要通过学习网络的权重得到单词的稠密向量表示。

讲解贝叶斯平滑原理?以及如何训练得到平滑参数
贝叶斯平滑在朴素贝叶斯法中出现过
防止出现估计概率值为0,影响后续计算。