【机器学习】2. 数据预处理

数据预处理

  • [1. 两种变量属性](#1. 两种变量属性)
  • [2. 数据集的类别](#2. 数据集的类别)
  • [3. 数据清洗](#3. 数据清洗)
  • [4. 减少噪声的方法](#4. 减少噪声的方法)
  • [5. 解决数据缺失的方法](#5. 解决数据缺失的方法)
  • [6. 数据预处理](#6. 数据预处理)
    • [6.1 数据聚合](#6.1 数据聚合)
    • [6.2 数据提取](#6.2 数据提取)
    • [6.3 数据子集选择](#6.3 数据子集选择)
      • [6.3.1 选择方法](#6.3.1 选择方法)
    • [6.4 权重加权](#6.4 权重加权)
    • [6.5 数据类型转换](#6.5 数据类型转换)
      • [6.5.1 二值化](#6.5.1 二值化)
    • [6.6 离散化](#6.6 离散化)
      • [6.6.1 无监督离散化](#6.6.1 无监督离散化)
    • [6.7 规范化和标准化(normalization and standardization)](#6.7 规范化和标准化(normalization and standardization))
      • [6.7.1 normalization](#6.7.1 normalization)
      • [6.7.2 standardization](#6.7.2 standardization)

1. 两种变量属性

  • 类型 (nominal) : 主要是姓名,ID之类的(categorical)
  • 数值 (numeric):连续的数值,比如房价,身高(continuous)

2. 数据集的类别

  • 矩阵
  • 序列数据,比如时间序列数据
  • 图表, 比如分子结构(molecular structure)
  • 空间数据(spatio - temporal)
  • 事务型数据 (transaction data)

3. 数据清洗

原因:

  • 数据不是完美的
  • 有缺失的数据
  • 噪音数据(虚假数据,不一致的数据,重复数据,干扰数据)

4. 减少噪声的方法

  • 使用信号,图像处理和异常值检测技术
  • 更换机器学习算法,选择对噪声鲁棒性更好的模型(即能够接受存在更多噪声的模型)

5. 解决数据缺失的方法

  • 直接删除所有缺失数据

后果是会导致丢失很多数据来创建一个有效的模型

  • 通过剩余的数据来估计缺失数据的值
    • 类别数据(nominal)
      • 通过该变量的众数替代
      • 通过观察结果值(结果值无缺失的情况)。假如这组缺失数据的结果值是T,在所有结果为T的数据中找到最多的变量值,作为缺失值的替代。
    • 数值数据 (continuous)
      • 距离最近的几个数据的平均值进行替代。

6. 数据预处理

6.1 数据聚合

将两个或者多个变量进行合并。

目的:

  • 减少内存和计算的开销,节约成本
  • 改变规模,小规模可以变成大规模,比如班级变成学校
  • 数据更加稳定,波动减少。 比如购物,买猪肉,牛肉,变成肉。

缺点:

  • 有可能丢失有用的一些细节

6.2 数据提取

数据提取是重要的任务,在原始数据中创建特征

  • 要求专业知识,比如创建哪些特征能够有效判断是狗还是猫
  • 数据可能需要转换到另一个空间,比如傅里叶变换(图像处理章节有介绍。)(fourier transform.)。在另一个空间中可能会显示其他有效特征。

6.3 数据子集选择

  • 剔除无效,不相关的数据,选择有效充分的数据
  • 对好的分类结果很重要
  • 好的特征选择,能够提高准确率
  • 使用更少的特征也意味着
    • 更快建立分类器
    • 能够更加精简,简单介绍分类规则

6.3.1 选择方法

  • 暴力遍历(Brute force): 尝试所有提取方式,用最好的结果
  • 嵌入(Embedded): 一些机器学习算法能够自动提取特征,比如决策树
  • 筛选(Filter): 通过相关性,或者统计测量(如信息增益等)进行筛选
  • 包装器(Wrapper):通过机器学习方法来选择最好的特征(将某个机器学习算法作为黑盒子来评估不同的特征并且选择最好的。)

6.4 权重加权

  • 能够替代数据剔除的方式
  • 重要数据有更高的权重,可以手动加权或者自动加权(boosting)

6.5 数据类型转换

  • 将类别数据(nominal)转换成数值(numeric)
  • 转换成二值化数据(如0-1)
  • 因为一些模型,只能接受类型数据,数值数据或者二进制数据。

6.5.1 二值化

  • 类别 -> 整数 -> 二值化
  • 数值 -> 类别 -> 整数 -> 二值化
    二值化的类别:
  • (0,1,1) 可以两个1代表1类
  • 或者one - hot (0,0,1)

6.6 离散化

数值型(numeric) -> 类别型 (nominal)

6.6.1 无监督离散化

  • equal width: 从左往右等距离分类
  • equal frequency: 从左往右等数量分类
  • clustering: 聚合:K-means

6.7 规范化和标准化(normalization and standardization)

  • 将变量转换到新的范围中,比如(0,1)
  • 避免大数值对小数值的影响
  • 需要计算距离的机器学习算法常用,其他类型的机器学习算法也常常能够获得更好的评估效果。

6.7.1 normalization

x : 变量

x : 原始数据

x': 新数据
x ′ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x' = \frac{x - min(x)}{max(x) - min(x)} x′=max(x)−min(x)x−min(x)

6.7.2 standardization

x ′ = x − μ ( x ) σ ( x ) x' = \frac{x - \mu(x)}{\sigma(x)} x′=σ(x)x−μ(x)

σ: 标准差(standard deviation)

u: 均值(mean)

相关推荐
蜜桃味女焊匠人33 分钟前
焊接生产线优化思路:解决手工焊、机器人焊气体浪费问题
人工智能·经验分享·其他·机器人
Georgeviewer5 小时前
商业落地评测|实体门店GEO优化性价比与服务体系深度复盘
大数据·人工智能
GuWenyue6 小时前
分不清AI Workflow与Agent?3个实战案例彻底讲透,做AI应用不再踩选型坑
人工智能
彩讯股份3006347 小时前
彩讯股份与心洲科技签署战略合作协议,共建企业级模型后训练能力
人工智能·科技
Scott9999HH7 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
迅易科技7 小时前
从场景验证到Agent上线:迅易 × WorkBuddy如何帮助企业建设AI能力?
人工智能·ai·腾讯云
腻害兔7 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
PNP Robotics7 小时前
多伦多大学机器人峰会|物理AI与具身智能落地新趋势
人工智能·深度学习·机器学习·机器人
GIR1237 小时前
官方出品 | 多通道土壤呼吸测量系统市场现状与十五五规划深度报告:行业分析+趋势预测全收录
大数据·人工智能·机器学习
绿算技术7 小时前
绿算技术亮相第十八届HPC AI中国年会,擘画AI基础设施全栈协同新图景
人工智能