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

news2024/11/18 3:48:31

目录

一、数据清理

二、数据变换

三、特征工程

四、总结


一、数据清理

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

  • 数据不干净(噪声多)?

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

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

对数据进行变换;

  • 数据对模型不是很友好?

对数据的特征进行提取。 

数据的错误 

  • 收集到的数据与真实观测值不一致【数值丢失,数值错误,极端的值】。
  • 好的模型对错误是有容忍度的【给了错误的数据一样是能够收敛但是精度会比用干净的数据低一点】。
  • 部署了这样的模型后可能会影响新收集来的数据结果。 

数据错误的类型 

  • 数据中某个样本的数值不在正常的分布区间中(Outlier)
  • 违背了规则(Rule violations)
  • 违反了语法上或语义上的限制(Pattern violations) 

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

 Rule-based Detection 

Pattern-based Detection 

总结 

二、数据变换

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

对数值的变换

  • 把一个列里面的数值的最小值与最大值都限定到一个固定区间内,然后把所有的元素只通过线性变化出来【将数据的单位放到合理的区间】;
  • Z-score 一个更常见的算法:通过算法使得均值变为0,方差变为1
  • 把一列的数据换成是-1到1之间的数据
  • 对数值都是大于0,且数值变换比较大可以试一下log一下【log上面的加减等于原始数据的乘除,可以将计算基于百分比的】 
  •  

对图片的变换 

  • 将图片的尺寸变小【机器学习对低分辨率的图片不在意】
  • 图片采样的比较小,且jpeg选用中等质量压缩,可能会导致精度有1%的下降(ImageNet)【数据的大小与质量要做权衡】 

对视频的变换

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

对文本的变换 

  • 词根化(语法化):把一个词变成常见的形式
  • 词元化(机器学习算法中最小的单元) 

总结 

三、特征工程

为什么需要特征工程:

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

对表的数据 

  • 对于整型或浮点型的数据,可以直接用或者是把最大最小值拿出来,再把这个数据分成n个区间,如果值在区间中,则会给它对应区间的下标i【这样可以让机器学习算法不去纠结一个具体的值(细粒度的值)】
  • 对于类别的数据,一般采用one-hot(独热)编码(虽然有n列,但是只有每一列有值)【虽然有很多的类别但是常见的只有几个类,可以将少数的类别变成不确定的类别,只保留那些比较重要的类别,这样可以把这些重要的类别放到可控的单元内】
  • 对于时间的特征,将时间的数据弄成机器学习算法能知道这些天数中是有特殊意义的日子(周末、休息日、新年之类的)
  • 特征组合:这样子能拿到两两特征之间相关性的东西 

对文本的数据 

  • 可以将文本换成一些词元(token)
  • Bag of woeds(BoW) model:把每一个词元(token)弄成one-hot编码,再把句子里的所有词元加起来【这里要注意的是 怎么样把词典构造出来,不能太大也不能太小;BoW model最大的问题在于原句子的信息丢失了】。
  • Word Embeddings(词嵌入):将词变成一个向量,向量之间具有一定的语义性的(两个词之间对应的向量之间的内积比较近的话,说明这两个词在语义上来说是比较相近的)
  • 可以使用预训练的模型(BERT,GPT-3) 

对于图片与视频 

  • 传统是用手动的特征方式如SIFT来做
  • 现在用预训练好的深度神经网络来做(ResNet,I3D) 

总结

四、总结

要启动一个机器学习任务

  • 有没有足够的数据?

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

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

1、对模型之后会展开
2、提升标号:没有标号可以去标;标号里面有很多错误的话,要对它进行清理;【数据标注:半监督学习;有钱可以众包;看看数据长什么样子,找其他的规则,从数据中提起有弱噪音的标号,也是可以用来训练模型的】
3、数据预处理:看看数据长什么样子;通常来说数据是有很多噪音的,要对数据清洗;将数据变成我们需要的格式;特征工程;
4、上面的过程可以说是一个迭代的过程。

面对的挑战:

数据的质与量要做权衡;
数据质量:数据的多样性:产品所关心的方方面面都要考虑;无偏差:数据不能只是偏向于一个方面;公平性:不区别对待数据。
大数据的管理是一件很难的事情:存储;快速处理;版本控制;数据安全 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/133624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32 TIM PWM初阶操作:非互补PWM输出

STM32 TIM PWM初阶操作详解:非互补PWM输出 STM32 TIM可以输出管脚PWM信号适合多种场景使用,功能包括单线/非互补PWM输出,双线/互补PWM输出,以及死区时间和刹车控制等。 实际上,因为早期IP Core的缺陷,早期…

Android多线程编程

二.Android多线程编程 1.线程的相关概念 1)相关概念: 程序:为了完成特定任务,用某种语言编写的一组指令集合(一组静态代码)进程:运行中的程序,系统调度与资源分配的一个独立单位,操作系统会 为…

leetcode 207. 课程表——java题解

题目所属分类 类似有向图的拓扑排序 入度为0就是起点 因为是要按照先后顺序的,所以是就是有向图 原题链接 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites …

Jetpack Compose中的Accompanist

accompanist是Jetpack Compose官方提供的一个辅助工具库,以提供那些在Jetpack Compose sdk中目前还没有的功能API。 权限 依赖配置: repositories {mavenCentral() }dependencies {implementation "com.google.accompanist:accompanist-permissi…

阳后买不到温度计 那么自己diy!(已开源)

这里写目录标题一 说明二 成品效果三 硬件材料四 硬件连接五 软件六 3D外盒模型一 说明 前段时间放开疫情后,身边人基本都阳了,自己也不出所料阳了,然后去药店买温度计,发现买不到,网上的买了也不发货,但是…

7.JS笔记-数组

1.数组的概念 使用数组Array可以把一组相关的数据存放在一起,并提供方便的获取方式。 数组是一组数据的集合,其中的每个数据被称作是元素,在数组中可以存放任意类型的元素。数组是一种将数据存储在单个变量名下的方式 2.创建数组 利用new关…

【Linux】Linux进程的理解 --- 进程状态、优先级、切换…

如果不改变自己,就别把跨年搞的和分水岭一样,记住你今年是什么吊样,明年就还会是什么吊样!!! 文章目录一、冯诺依曼体系结构(硬件)二、操作系统(软件)1.操作…

git笔记2:Git基本理论,项目创建及克隆

目录 一、工作区域 二、工作流程 三、本地仓库搭建 1、创建全新的仓库 2、克隆远程仓库 一、工作区域 Git本地有三个工作区域: 工作目录(Working Directory):平时存放代码的地方暂存区(Stage/Index)&a…

sec6-可派生类型和抽象类型

可派生类型 有两种类型,final类型和derivable类型。final类型没有任何子对象。derivable有子对象。 这两个对象之间的主要区别是它们的类。final类型对象没有自己的类区域。类的唯一成员是它的父类。 派生对象在类中有自己的区域。该类对其子类开放。 G_DECLARE…

【python系列】第三章 基本数据类型

*该系列内容来自于:中国大学MOOC(幕客)-python语言程序设计 ​​​​​​Python语言程序设计_北京理工大学_中国大学MOOC(慕课) 第三章 基本数据类型 方法论:Python语言数字及字符串类型 实践能力:初步学会编程进行…

236. 二叉树的最近公共祖先 - 力扣[LeetCode]

目录 如果二叉树是二叉搜索树: 如果是普通的二叉树 【方法一】子树判断法 【方法二】路径确定 【方法三】递归 面对此类型的公共祖先问题,可以分为以下几类情况讨论 如果二叉树是二叉搜索树: a. 如果树是空,直接返回nullpt…

分布式存储系统 Ceph 介绍与环境部署

文章目录一、概述二、Ceph 架构三、Ceph核心组件介绍四、Ceph 三种存储类型1)块存储服务(RBD)2)文件系统存储服务(CephFS)3)对象存储服务(RGW)五、Ceph版本发行生命周期六、Ceph 集群部署1)集群部署规划2)前期准备1、关…

Python--让我们秀翻算法中的二进制

我相信大家在leetcode刷题或者更好的国外天梯刷题的时候应该经常能看到 **<<,>>,|,&**在我们的if里面构成了一个判断的条件. 然后在大家看不懂情况下就莫名其妙的把题目作对了!!! 所以我们准备持续的更新一下,二进制的用法. 大家要明白一个道理.一切的工具它…

Excel聚光灯--双箭头指示

实例需求&#xff1a;在工作表中核对数据时&#xff0c;虽然行列标题都会高亮显示&#xff0c;但是似乎并不明显&#xff0c;因此添加两个列标到活动单元格的箭头&#xff0c;以便于更好的定位。 选中单个单元格效果如下图所示。 选中多个单元格的效果如下图所示。 示例代码如…

51单片机——输出可调PWM

PWM控制在很多地方都会用到&#xff0c;比如使用PWM来控制电机的速度&#xff0c;使用PWM来生成想要的波形。 一、PWM PWM即脉冲宽度调制&#xff0c;在具有惯性的系统中&#xff0c;可以通过对一系列脉冲的宽度进行调制&#xff0c;来等效的获得所需要的模拟参量&#xff1b…

[JavaEE]线程的状态与安全

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1. 线程状态 1.1 观察线程的所有状态 1.2 线程的…

k-means算法进行数据分析应用

简介 kmeans算法又名k均值算法,K-means算法中的k表示的是聚类为k个簇&#xff0c;means代表取每一个聚类中数据值的均值作为该簇的中心&#xff0c;或者称为质心&#xff0c;即用每一个的类的质心对该簇进行描述。 其算法思想大致为&#xff1a;先从样本集中随机选取 k…

【王道操作系统】2.3.3 实现临界区进程互斥的硬件实现方法

实现临界区进程互斥的硬件实现方法 文章目录实现临界区进程互斥的硬件实现方法1.中断隐藏方法2.TestAndSet指令3.Swap指令1.中断隐藏方法 2.TestAndSet指令 执行TSL指令时&#xff0c;它的内部运转逻辑&#xff1a;假设lock现在为false&#xff0c;代表临界资源A空闲&#xff…

AssertionError: Torch not compiled with CUDA enabled解決方案

在執行pytorch代碼的時候&#xff0c;突然看到報錯 AssertionError: Torch not compiled with CUDA enabled 這說明了 1. 你pytoch确实安装了 2. 你安装的是cpu版本 作为验证&#xff0c;你可以在python编辑器输入下列代码 解决方案 首先&#xff0c;安装Nvidia toolkit su…

(深度学习快速入门)第二章:从线性神经网络入手深度学习(波士顿房价案例)

文章目录一&#xff1a;波士顿房价预测数据集说明二&#xff1a;Pytorch搭建模型&#xff08;1&#xff09;数据处理&#xff08;2&#xff09;网络结构&#xff08;3&#xff09;损失函数&#xff08;4&#xff09;优化方法&#xff08;5&#xff09;训练预测&#xff08;6&am…