- 避免异常点:比如对连续变量进行份桶离散化
- 可解释性或者需要连续输出:比如评分卡模型中的iv+woe
- 使得原始数据的信息量更大:比如log/sqrt变换
-
归一化(max-min)
- 缩放仅仅跟最大、最小值的差别有关,只是一个去量纲的过程
-
标准化(z-score)
- 缩放和所有点都相关,数据相对分布不会改变,集中的数据标准化后依旧集中
-
作用
- 解决部分模型由于数据值域不同对模型产生的影响,尤其是距离模型
- 更快的收敛
- 去量纲化
- 避免数值计算溢出
-
总结
- 异常点角度:特征数据上下限明显异常的时候使用标准化方法,简单归一化会造成数据差异模糊,整体方差下降
- 分布角度:使用标准化之前,要求数据需要近似满足高斯分布,不然会改变数据的分布,尤其是对数据分布有强假设的情况下
- 上线变动角度:归一化在上线的时候需要考虑上下约束届是否需要变动,标准化则不需要考虑变动
- 值域范围角度:归一化对数据范围约定较为固定,而标准化的输出上下届则不定
- 模型角度:一般涉及距离计算,协方差计算,数据满足高斯分布的情况下用标准化,其他归一化或其他变换
-
常用模型
- knn:计算距离,不去量冈则结果受值域范围影响大
- neural network:梯度异常问题+激活函数问题
-
截断
- 连续型的数值进行截断或者对长尾数据进行对数后截断(保留重要信息的前提下对特征进行截断,截断后的特征也可以看作是类别特征)
- 参考异常点里面的outlier识别,以最大值填充或者以None
-
二值化
- 数据分布过于不平衡
- 空值/异常值过多
-
分桶
-
离散化
- 数值无意义,比如学历、祖籍等等
-
缩放
-
特征交叉
-
非线性编码
- 核向量进行升维
- 树模型的叶子结点的stack
- 谱聚类/pca/svd等信息抽取编码
- lda/EM等分布拟合表示
- one-hot-encoder
- 分层编码
- 有一定规律的类别数据,邮政编码,手机号等等
- 计数编码
- 将类别特征用其对应的计数来代替,这对线性和非线性模型都有效
- 对异常值比较敏感,特征取值有可能冲突
- 计数排名编码
- 解决上述问题,以排名代替值
- Embedding
- 对于基数(类别变量所有可能不同取值的个数)很大的离散特征,简单模型任意欠拟合,而复杂模型任意过拟合;对于独热编码,得到的特征矩阵太稀疏.对于高基数类别变量,有效方式是基于目标变量对类别特征进行编码,即有监督的编码方式,适用于分类和回归问题
- 类别特征之间交叉组合
- 笛卡尔交叉
- 类别特征和数值特征之间交叉组合
- 均值、中位数、标准差、最大值和最小值
- 分位数、方差、vif值、分段冲量
- 预处理手段有哪些?
- 将字符转化为小写
- 分词
- 去除无用字符
- 繁体转中文
- 去除停用词
- 去除稀有词
- 半角全角切换
- 错词纠正
- 关键词标记
- TF-IDF
- LDA
- LSA
- 提取词根
- 词干提取
- 标点符号编码
- 文档特征
- 实体插入和提取
- 文本向量化
- word2vec
- glove
- bert
- 文本相似性
- 如何做样本构造?
- 按标点切分
- 按句切分
- 对话session切分
- 按文章切分
- 按场景切分
- 分词过程中会考虑哪些方面?
- 词性标注
- 词形还原和词干提取
- 词形还原为了通用性特征的提取
- 词干提取为了去除干扰词把训练注意力集中在关键词上,同时提高速度;缺点是不一定词干代表完整句义
- 文本中的统计信息一般有哪些?
- 直接统计值:
- 文本的长度
- 单词个数
- 数字个数
- 字母个数
- 大小写单词个数
- 大小写字母个数
- 标点符号个数
- 特殊字符个数
- 数字占比
- 字母占比
- 特殊字符占比
- 不同词性个数
- 直接统计值的统计信息:
- 最小最大均值方差标准差
- 分位数,最早/最晚出现位置
- 直接统计值:
- 直接对文本特征进行整理手段有哪些?
- N-Gram模型
- 将文本转换为连续序列,扩充样本特征
- 连续语意的提取
- TF-IDF
- 权重评分,去除掉一些低重要性的词,比如每篇文章都出现的"的","了"
- LDA
- 主题抽取,用狄利克雷分布去拟合出文章和主题之间的关系
- 相似度
- 余弦相似度
- Jaccard相似度
- 共现性
- Levenshtein(编辑距离)
- 文本近似程度
- 海林格距离
- 用来衡量概率分布之间的相似性
- JSD
- 衡量prob1 和 prob2两个分布的相似程度
- 向量化
- word2vec
- glove
- bert
- N-Gram模型
- 文本处理有大量可以讲,可以谈的,以上只是做了一个最简单的汇总,详细的会在自然语言处理的专题一条一条分析,面试官也一定会就每个知识点进行展开