机器学习中数据清洗和特征选择总结

一.数据清洗

机器学习中数据清洗和特征选择总结_第1张图片

1.预处理:理解数据及数据特征(很重要)

2.异常样本数据:

  • 将时间、日期、数值等转为统一格式
  • 去除文本中不需要的特殊字符等
  • 去除内容与字段不对应的情况,如:字段为性别,描述为姓名
  • 数据去重
  • 替换不合理值
  • 核验多数据源数据关联时是否正确

3.采样:

数据不均衡问题:

  • 设置损失函数权重,少数类别增大损失系数
  • 下采样/欠采样:从多数类别数据中随机抽取样本数据,使数据达到平衡
  • 集成下采样/欠采样:采用普通的下采样方式会导致信息丢失,所以一般采用集 成学习和下采样结合的方式来解决这个问题。采用不放回的数据抽取方式抽取多数类别样本数据,然后将抽取出来的数据和少数类别 数据组合训练一个模型;多次进行这样的操作,从而构建多个模型,然后使用多个模型 共同决策/预测

  • 过采样/上采样(Over Sampling):通过有放回抽样来增加 少数样本的数目,然后使用抽取样本+原始数据组成 训练数据集来训练模型;不过该方式比较容易导致过拟合,一般抽样样本不要超 过50%

  • 采用数据合成的方式生成更多的样本,该方式在小数据集场景下具有比较成功的 案例。常见算法是SMOTE算法,该算法利用小众样本在特征空间的相似性来生 成新样本

二.特征转换

1.词袋法:统计词频

2.TF-IDF:TF词频,IDF逆文档频率:表示词在各个文档中出现的概率

3.HashTF-IDF:不计算词频,而是计算单词进行hash后的hash值对应的样本数量。当计算量太大时用HashTF的形式来解决该问题。特点:运行速度快,但是无法获取高频词,有可能存在单词碰撞问题 (hash值一样)

4.缺省值填充

5.哑编码(OneHotEncoder)

6.二值化(Binarizer):对于定量的数据(特征取值连续)根据给定的阈值,将其进 行转换,如果大于阈值,那么赋值为1;否则赋值为0

7.标准化:基于特征属性的数据(也就是特征矩阵的列),获取均值和方差,然后将 特征值转换至服从标准正态分布。

8.区间缩放法(归一化):是指按照数据(特征属性,也就是列)的取值范围特性对数据进行缩 放操作,将数据缩放到给定区间上。

9.正则化:和标准化不同,正则化是基于矩阵的行进行数据处理,其目的是将矩阵 的行均转换为“单位向量”

10.降维:减小计算量,缩短训练时间。LDA\PCA。PCA是为了让映射后的样本具有更大的发散性,PCA是无监督的学习算法,LDA是为了让映射后的样本有最好的分类性能,LDA是有监督学习算法。

标准化的目的是为了降低不同特征的不同范围的取值对于模型训练的影响;比如对于同 一个特征,不同的样本的取值可能会相差的非常大,那么这个时候一些异常小或者异常 大的数据可能会误导模型的正确率;另外如果数据在不同特征上的取值范围相差很大, 那么也有可能导致最终训练出来的模型偏向于取值范围大的特征,特别是在使用梯度下 降求解的算法中;通过改变数据的分布特征,具有以下两个好处:1. 提高迭代求解的收 敛速度;2. 提高迭代求解的精度。

归一化对于不同特征维度的伸缩变换的主要目的是为了使得不同维度度量之间特征具有可比性,同时 不改变原始数据的分布(相同特性的特征转换后,还是具有相同特性)(不改变的意思是:多个特征之间 的关系不改变)。和标准化一样,也属于一种无量纲化的操作方式。

正则化则是通过范数规则来约束特征属性,通过正则化我们可以降低数据训练处来的模型的过拟合可 能,和之前在机器学习中所讲述的L1、L2正则的效果一样。在进行正则化操作的过程中,不会改变数 据的分布情况,但是会改变数据特征之间的相关特性。

如果面试有人问标准化和归一化的区别:标准化会改变数据的分布情况,归一化不会,标准化的主要作用是提高迭代速度,降低不同维度之间影响权重不一致的问题。

你可能感兴趣的:(机器学习)