一、数据预处理

在实际数据分析工作中,我们会得到各种各样的数据,例如:存在缺失值,存在重复值,数据量纲单位不同等,这就要求我们在使用之前对数据进行预处理,一般为针对不同生物学特征和数据集数据的不同而选择不同的预处理流程,下文将结合我们遇到的问题,分享一些在机器学习中常用到的可能会与我们的数据预处理相关的方法。

1. 标准化(Standardization)

根据维基百科中所说,归一化(Normalization)和标准化(Standardization)都属于数据缩放的方法,用于数据预处理过程。 而正则化一般用于解决过拟合问题,用于模型训练过程。 实际上在很多资料中,Standardization和Normalization经常混为一起说明。

下面将对标准化的几种常见方式进行一一说明:

目录

1.1 zscore (scale) 标准化处理

1.2 最大-最小值缩放数据

1.3 MaxAbsScaler

1.4 用离群值缩放数据

1.5 中心化核矩阵

1.1 zscore (scale) 标准化处理

scale 将特征数据的分布调整成标准正态分布,也叫高斯分布,也就是使得数据的均值为0,方差为1。标准化的原因在于如果有些特征的方差过大,则会主导目标函数从而使参数估计器无法正确地去学习其他特征。

标准化的过程为两步:去均值的中心化(均值变为0);方差的规模化(方差变为1)。

1.1.1 运行

在sklearn.preprocessing中提供了一个scale的方法,可以实现以上功能。

  1. from sklearn import preprocessing
  2. import numpy as np
  3. x = np.array([[1., -1., 2.],
  4. [2., 0., 0.],
  5. [0., 1., -1.]])
  6. x_scale = preprocessing.scale(x)

1.1.2 测试

对疑惑的问题进行下述测试:

1. 不同类型数据经过scale转换后是否符合正太分布?

答:否,正态分布数据经过scale转换后变为标准正态分布,非正态分布数据不一定会转换为正太分布数据,

示例如下:

随机生成的非正态分布数据进行scale转换,使用KSTest 进行正太分布验证,然后看一下数据分布情况:

  1. import random
  2. from scipy import stats
  3. x1=np.random.rand(100000) ##随机生成
  4. x1_scale = preprocessing.scale(x1)
  5. print(jude_KS(x1))
  6. print(jude_KS(x1_scale))

1.2 最大-最小值缩放数据 

在MinMaxScaler中是给定了一个明确的最大值与最小值。

它的计算公式如下:

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))

X_scaled = X_std / (max - min) + min

以下这个例子是将数据规与[0,1]之间,每个特征中的最小值变成了0,最大值变成了1:

  1. min_max_scaler = preprocessing.MinMaxScaler()
  2. x_minmax = min_max_scaler.fit_transform(x)
  3. print(x_minmax)
  4. # 同样的,如果有新的测试数据进来,也想做同样的转换咋办呢?请看:
  5. x_test = np.array([[-3., -1., 4.]])
  6. x_test_minmax=min_max_scaler.transform(x_test)

1.3 MaxAbsScaler 

MaxAbsScaler 原理与MinMaxScaler很像,只是数据会被规模化到[-1,1]之间,也就是说:在特征中,所有的数据都会除以最大值,这个方法对那些已经中心化均值为0或者稀疏的数据有意义。

1.4 用离群值缩放数据

如果数据包含许多离群值,那么使用数据的平均值和方差进行缩放可能不会很好地工作,异常值往往会对样本均值/方差产生负面影响。在这些情况下,可以使用罗布斯卡尔作为替代,它对数据的中心和范围使用更可靠的估计,中位数和四分位范围通常会给出更好的结果。

robust_scale、RobustScaler 为Sklearn中用离群值缩放数据的包, 实现规模化有异常值的数据(用离群值缩放数据)会根据中位数或者四分位数去中心化数据。

1.5 中心化核矩阵

有一个函数在定义的特征空间上计算点积核的核矩阵,可使用KernerlCenter变化核矩阵,使他包含由函数定义的被出去均值的特征空间上的内积。

换句话说:如果有一个核矩阵,它在一个由函数定义的特征空间中计算点积,KernerlCenterer可以转换核矩阵,使其包含特征空间中的内积,然后去除该空间中的均值,最终获得缩放后的数据。

参考:6.3. Preprocessing data — scikit-learn 1.0.2 documentationhttps://scikit-learn.org/stable/modules/preprocessing.html#standardization-or-mean-removal-and-variance-scaling

数据预处理方式:标准化/正态分布/zscore/scale/相关推荐

  1. Scikit-learn 数据预处理之标准化StandardScaler

    Scikit-learn 数据预处理之标准化StandardScaler 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 St ...

  2. 数据预处理-样本分布(正态分布、偏态分布)

    数据预处理-样本分布(正态分布.偏态分布) 转载自: https://blog.csdn.net/lanchunhui/article/details/53239441 https://www.cnb ...

  3. 数据预处理之标准化方法

    评价是现代社会各领域的一项经常性的工作,是科学做出管理决策的重要依据.随着人们研究领域的不断扩大,所面临的评价对象日趋复杂,如果仅依据单一指标对事物进行评价往往不尽合理,必须全面地从整体的角度考虑问题 ...

  4. 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化

    20220121 z-score标准化 模型存储和load再调用其实没有关系 再load计算的时候,也是以实际的数据重新计算 并不是以save模型的边界来计算的 20211227 onehot训练集保 ...

  5. 使用sklearn进行数据预处理 —— 归一化/标准化/正则化

    本文主要是对照scikit-learn的preprocessing章节结合代码简单的回顾下预处理技术的几种方法,主要包括标准化.数据最大最小缩放处理.正则化.特征二值化和数据缺失值处理.内容比较简单, ...

  6. 数据预处理之标准化(Standardization)、归一化(Normalization)、中心化/零均值化(Zero-centered)

    一.数据标准化的意义: 1.数据的量纲不同:数量级差别很大 经过标准化处理后,原始数据转化为无量纲化指标测评值,各指标值处于同一数量级别,可进行综合测评分析. 如果直接用原始指标值进行分析,就会突出数 ...

  7. 数据预处理|关于标准化和归一化的一切

    数据预处理是最令数据科学家头秃的工作 之前在知乎看过一个问题你为什么离开数据科学行业?一位知友est答曰:数据清洗10小时,拟合2分钟,如此重复996. 这条回答下面的评论更是精彩,居然真的会眼瞎.. ...

  8. 深度学习数据预处理——批标准化(Batch Normalization)

    数据预处理最常见的方法就是中心化和标准化,中心化相当于修正数据的中心位置,实现方法非常简单,就是在每个特征维度上减去对应的均值,最后得到 0 均值的特征.标准化也非常简单,在数据变成 0 均值之后,为 ...

  9. 使用 Python 进行数据预处理的标准化

    机器学习和深度学习算法中的缩放方法 标准化和规范化是机器学习和深度学习项目中大量使用的数据预处理技术之一. 这些技术的主要作用 以类似的格式缩放所有数据,使模型的学习过程变得容易. 数据中的奇数值被缩 ...

最新文章

  1. szu 寒训个人复习第一天 线段树入门单点修改,区间修改,以及线段树的扩展运用[线段树+dp][区间最大公约数]
  2. Linux系统编程@文件操作(一)
  3. 导出excel表格,前端和后台导出
  4. java打印星号_【其它】编写Java程序在屏幕上打印用星号组成的等腰三角形
  5. java计数循环及小技巧
  6. mysql 5.6 linux安装配置_linux手动安装配置mysql5.6
  7. python 最简单的实现适配器设计模式
  8. GWT和HTML5 Canvas演示
  9. Java运行时内存工作过程
  10. 如何使用Movavi Video Editor Plus在Mac上制作旁白配音视频
  11. python下载微信公众号文章_Python 抓取微信公众号文章
  12. sql语句大全+实例讲解
  13. 小信号谐振器电路仿真实验
  14. angular 访问图片路径错误
  15. android跳转qq群代码,Android app 跳 QQ 群界面
  16. 上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域: 0区 1区 2区 3区 4区 同城 临近两省 1500公里(含)以内 1500——2500公里 2500公里以上 上海 江苏
  17. 关于win10装不上dnw驱动的问题
  18. 51单片机入门之四:静态数码管,单片机如何驱动数码管
  19. web:常见安全问题
  20. 坚果云 + Typora实现云同步

热门文章

  1. 浪子回头之中国科学院2008年研究生入学考试已知微分方程求解状态空间方程组
  2. ENSP配置 实例十 ACL配置
  3. lrc歌词转srt,歌词格式转换
  4. 人工智能遗传算法求函数极值
  5. cocoscreator打包oppo小游戏问题
  6. [RK3588 Android12]删除平板电脑正在启动提示框
  7. C语言分块矩阵乘法,c语言矩阵相乘
  8. Metalink Note:中文文档列表 - Oracle EBS (Enterprise Business Suite) [ID 1553829.1]
  9. 《长空之王》这种题材电影值得投吗?这个项目有哪些优势?
  10. PHPStorm配置PHP调试环境,xdebug调试原理