机器学习--数据清理、数据变换、特征工程

简介: 机器学习--数据清理、数据变换、特征工程

6d6f645570b547009d885324ad1436db.png

一、数据清理


数据清理是提升数据的质量的一种方式。


数据不干净(噪声多)?

需要做数据的清理,将错误的信息纠正过来;


数据比较干净(数据不是想要的格式)?

对数据进行变换;


数据对模型不是很友好?

对数据的特征进行提取。


数据的错误


收集到的数据与真实观测值不一致【数值丢失,数值错误,极端的值】。

好的模型对错误是有容忍度的【给了错误的数据一样是能够收敛但是精度会比用干净的数据低一点】。

部署了这样的模型后可能会影响新收集来的数据结果。

数据错误的类型


数据中某个样本的数值不在正常的分布区间中(Outlier)

违背了规则(Rule violations)

违反了语法上或语义上的限制(Pattern violations)

不同类型的错误要怎么做检测?

bc03aec3e84642d7977bafedf3cd9a83.png


Rule-based Detection

Pattern-based Detection


总结


6a890f2415674c7092bd3ac4d8fa73a5.png


二、数据变换


数据标注、清理到特征工程之间的操作是数据变换


80b56421f82d498f8f861d948668c4db.png

对数值的变换


把一个列里面的数值的最小值与最大值都限定到一个固定区间内,然后把所有的元素只通过线性变化出来【将数据的单位放到合理的区间】;

Z-score 一个更常见的算法:通过算法使得均值变为0,方差变为1

把一列的数据换成是-1到1之间的数据

对数值都是大于0,且数值变换比较大可以试一下log一下【log上面的加减等于原始数据的乘除,可以将计算基于百分比的】


114112274a1b4d7a8fa5e16dff348267.png


对图片的变换


将图片的尺寸变小【机器学习对低分辨率的图片不在意】

图片采样的比较小,且jpeg选用中等质量压缩,可能会导致精度有1%的下降(ImageNet)【数据的大小与质量要做权衡】

对视频的变换


比如:使用短视频(10s以内),将视频切到感兴趣的部分

对文本的变换


词根化(语法化):把一个词变成常见的形式

词元化(机器学习算法中最小的单元)

总结  


124c42e61ca34141bc405182a05490aa.png


三、特征工程


为什么需要特征工程:

因为机器学习的算法比较喜欢定义的比较好的、它能比较好的去处理的、固定长度的输入输出。

e027ac5e0eca4791bedf699cbb4c896e.png

对表的数据


对于整型或浮点型的数据,可以直接用或者是把最大最小值拿出来,再把这个数据分成n个区间,如果值在区间中,则会给它对应区间的下标i【这样可以让机器学习算法不去纠结一个具体的值(细粒度的值)】

对于类别的数据,一般采用one-hot(独热)编码(虽然有n列,但是只有每一列有值)【虽然有很多的类别但是常见的只有几个类,可以将少数的类别变成不确定的类别,只保留那些比较重要的类别,这样可以把这些重要的类别放到可控的单元内】

对于时间的特征,将时间的数据弄成机器学习算法能知道这些天数中是有特殊意义的日子(周末、休息日、新年之类的)

特征组合:这样子能拿到两两特征之间相关性的东西


989daa63a4be440b9d631d9b317d6e88.png

对文本的数据


可以将文本换成一些词元(token)

Bag of woeds(BoW) model:把每一个词元(token)弄成one-hot编码,再把句子里的所有词元加起来【这里要注意的是 怎么样把词典构造出来,不能太大也不能太小;BoW model最大的问题在于原句子的信息丢失了】。

Word Embeddings(词嵌入):将词变成一个向量,向量之间具有一定的语义性的(两个词之间对应的向量之间的内积比较近的话,说明这两个词在语义上来说是比较相近的)

可以使用预训练的模型(BERT,GPT-3)

对于图片与视频


传统是用手动的特征方式如SIFT来做

现在用预训练好的深度神经网络来做(ResNet,I3D)

总结


458898754a0e4f3f9a69ff3f969ea7ac.png

四、总结


要启动一个机器学习任务


  • 有没有足够的数据?
  • 没有的话就去收集数据【发掘在哪里找数据;数据增强;生成自己需要的数据;(以上方法都不可以可能这个任务不那么适合机器学习)】


对数据进行提升。 标号?数据质量?模型?

1、对模型之后会展开

2、提升标号:没有标号可以去标;标号里面有很多错误的话,要对它进行清理;【数据标注:半监督学习;有钱可以众包;看看数据长什么样子,找其他的规则,从数据中提起有弱噪音的标号,也是可以用来训练模型的】

3、数据预处理:看看数据长什么样子;通常来说数据是有很多噪音的,要对数据清洗;将数据变成我们需要的格式;特征工程;

4、上面的过程可以说是一个迭代的过程。


e527cb5534924872a6e21c24eaf7e427.png


面对的挑战:


数据的质与量要做权衡;

数据质量:数据的多样性:产品所关心的方方面面都要考虑;无偏差:数据不能只是偏向于一个方面;公平性:不区别对待数据。

大数据的管理是一件很难的事情:存储;快速处理;版本控制;数据安全 。


文章知识点与官方知识档案匹配,可进一步学习相关知识

目录
相关文章
|
4天前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的特征工程
【5月更文挑战第10天】 在机器学习领域,特征工程扮演着至关重要的角色。它涉及选择、修改和创造从原始数据中提取的特征,旨在提高模型的性能。本文将深入探讨特征工程的多个方面,包括数据清洗、特征选择、维度缩减以及特征编码等,同时提供实用的技巧和策略,帮助读者构建出更有效的机器学习模型。
|
1天前
|
数据采集 机器学习/深度学习 人工智能
【机器学习】在使用K-means算法之前,如何预处理数据?
【5月更文挑战第12天】【机器学习】在使用K-means算法之前,如何预处理数据?
|
4天前
|
机器学习/深度学习
【机器学习】噪声数据对贝叶斯模型有什么样的影响?
【5月更文挑战第10天】【机器学习】噪声数据对贝叶斯模型有什么样的影响?
|
8天前
|
机器学习/深度学习 数据采集 算法
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
|
9天前
|
数据采集
【大模型】大语言模型训练数据中的偏差概念及其可能的影响?
【5月更文挑战第5天】【大模型】大语言模型训练数据中的偏差概念及其可能的影响?
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI 生成式】如何利用生成式人工智能进行机器学习的数据增强?
【5月更文挑战第4天】【AI 生成式】如何利用生成式人工智能进行机器学习的数据增强?
|
11天前
|
机器学习/深度学习 数据采集 搜索推荐
机器学习中的特征工程:提升模型性能的关键步骤
【5月更文挑战第3天】特征工程是提升机器学习模型性能的关键,涉及从原始数据中提取、选择和创造特征。它能提高模型预测准确率,简化模型复杂度,增强泛化能力。常用技术包括特征选择(Filter、Wrapper、Embedded方法)、特征构造(组合、多项式、文本特征提取)和特征变换(标准化、归一化、离散化)。通过优化特征工程,可找到最佳特征组合,提升模型性能。
|
14天前
|
机器学习/深度学习 存储 数据采集
【Python 机器学习专栏】PCA(主成分分析)在数据降维中的应用
【4月更文挑战第30天】本文探讨了主成分分析(PCA)在高维数据降维中的应用。PCA通过线性变换找到最大化方差的主成分,从而降低数据维度,简化存储和计算,同时去除噪声。文章介绍了PCA的基本原理、步骤,强调了PCA在数据降维、可视化和特征提取上的优势,并提供了Python实现示例。PCA广泛应用在图像压缩、机器学习和数据分析等领域,但降维后可能损失解释性,需注意选择合适主成分数量及数据预处理。
|
14天前
|
机器学习/深度学习 Python
【Python机器学习专栏】时间序列数据的特征工程
【4月更文挑战第30天】本文探讨了时间序列数据的特征工程,强调其在捕捉季节性、揭示趋势、处理异常值和提升模型性能中的重要性。介绍了滞后特征、移动窗口统计特征、时间戳特征、频域特征和波动率特征等方法,并提供了Python实现示例。通过有效特征工程,可提高时间序列分析的准确性和预测可靠性。
|
14天前
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。