1.无量纲化

无量纲化以我个人的理解,就是指在两个特征的单位不一样,其数值在大小上不是一个数量级,但是不能只凭数值的大小来决定两个特征谁的影响大,需要将两个特征归一到同一可比的范围内,来决定谁的影响范围。
常见的无量纲化有 min-max归一化和z-score标准化
(1)min-max归一化
min-max归一化是指对原始数据进行线性变换,将其映射到[0,1]之间,该方法也被称为离差标准化,与z-score标准化有本质区别。min-max的公式如下所示,

x’为归一化后的变量,x为原始数据,xmin为原始数据样本中的最小值,xmax为原始数据样本中的最大值。
Python实现

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
x = np.array([[1,-1,2],[2,0,0],[0,1,-1]])
x1 = MinMaxScaler().fit_transform(x)
print("x1=",x1)

结果为

x1= [[0.5        0.         1.        ][1.         0.5        0.33333333][0.         1.         0.        ]]

不难发现,x1每列的值都在[0,1]之间,也就是说,该模块是按列计算的。
(2)z-score标准化
z-score标准化是主要是用于样本数据量较大的情况,z-score标准化方法试图将原始数据集标准化成均值为0,方差为1且接近于标准正态分布的数据集。其公式为:

上式中,x是原始数据,u是样本均值,σ是样本标准差。回顾下正态分布的基本性质,若x~N(u,σ^2),则有

z-score其实就是将原始数据标准化为标准正态分布,但是一旦原始数据的分布不接近于一般正态分布,则标准化的效果会不好。
其Python实现:

import numpy as np
from sklearn.preprocessing import StandardScaler
y = np.array([[1,2,3],[4,5,6],[1,2,1]])
y1 = StandardScaler().fit_transform(x)
print("y1=",y1)

结果为:

y1= [[ 0.         -1.22474487  1.33630621][ 1.22474487  0.         -0.26726124][-1.22474487  1.22474487 -1.06904497]]

可以发现,y1的每一列加起来都是0,方差是1左右。注意该方法同样按列(即每个属性/特征)进行计算。

2.缺失值处理

缺失值是指在一个系统中,有些数据出现了部分属性的缺失,有可能是机器原因造成,有可能是人为原因造成的,
缺失值的丢失有可能对整个系统来说丢失了大量信息,使系统的不确定性变得更加显著,或者使整个系统的更加混乱。因此需要对数据中的缺失值进行处理。主要包括:
(1)简单删除:就是将含有缺失值的对象直接删除,这种方法有可能丢失掉重要的信息,对于样本少的数据,直接删除使得样本数量更少,对整个模型的训练或其他方面,会影响整个结果的判断。
(2)填补缺失值:即对缺失的属性进行不齐,补齐的方式有很多,比如人工直接填充,特殊值代替填充,就近补齐(对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。),聚类填充(最为典型的代表是K最近距离邻法,先根据欧式距离或相关分析来确定距离具有缺失数据样本最近的K个样本,将这K个值加权平均来估计该样本的缺失数据。)等等。

数据预处理之无量纲化、缺失值处理(三)相关推荐

  1. 数据预处理之中心化(零均值化)与标准化(归一化)

    数据预处理之中心化(零均值化)与标准化(归一化) 目的: 通过中心化和标准化处理,最终得到均值为0,标准差为1的服从标准正态分布的数据.可以取消由于量纲不同.自身变异或者数值相差较大所引起的误差. 原 ...

  2. pandas用众数填充缺失值_【机器学习】scikit-learn中的数据预处理小结(归一化、缺失值填充、离散特征编码、连续值分箱)...

    一.概述 1. 数据预处理 数据预处理是从数据中检测,修改或删除不准确或不适用于模型的记录的过程 可能面对的问题有:数据类型不同,比如有的是文字,有的是数字,有的含时间序列,有的连续,有的间断. 也可 ...

  3. eviews如何处理缺失数据填补_python数据预处理之异常值、缺失值处理方法

    数据预处理是明确分析目标与思路之后进行数据分析的第一步,也是整个项目中最基础.花费时间较长的工作.除了互联网埋点的数据或企业内部的业务数据之外,往往我们拿到的,比如说网上采集的数据并不是那样规整,这类 ...

  4. matlab 均值中心化,数据预处理之中心化(零均值化)与标准化(归一化)

    在机器学习回归问题,以及训练神经网络过程中,通常需要对原始数据进行中心化(零均值化)与标准化(归一化)处理. 背景 在数据挖掘数据处理过程中,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响 ...

  5. 数据预处理相关Demo(缺失值、均值方差标准化、极差法归一化、主成分分析)

    1 缺失值处理 1.1 pandas中利用fillna()函数 通过fillna()方法,可以去掉数据集中的空值(nan值). # 数据生成 import pandas as pd import nu ...

  6. 【建议收藏】机器学习数据预处理(一)——缺失值处理方法(内附代码)

  7. 机器学习笔记六——特征工程之数据预处理

    特征工程之数据预处理 1. 处理缺失值 2. 处理异常值 2.1 异常值检测 2.2异常值处理 3.离散特征的连续化处理 4.连续特征的离散化处理 5. 处理类别不平衡问题 6. 图片数据扩充 数据预 ...

  8. 数据预处理和特征选择

    背景介绍 结合网上一些相关资料,我们整理输出了这篇文章,本文说明了数据的重要性以及数据在各个环节和领域地位.更重要的是,这篇文章会详尽的讲解数据预处理和特征选择的原理及方法细节. 数据是什么? 通过观 ...

  9. 机器学习实战——特征工程之数据预处理

    机器学习实战的特征工程主要包含数据预处理.特征构建.特征选择三步,首先来介绍数据预处理. 我选择python作为工具,并将主要用到pandas.numpy等数据工具库.加载库: import pand ...

  10. 机器学习之数据预处理——归一化,标准化

    机器学习之数据预处理--归一化,标准化 基础知识 1.什么是特征预处理 2.预处理方法 : 3.预处理API: 数据的标准化(normalization)和归一化 数据的标准化 数据归一化 1 把数变 ...

最新文章

  1. hibernate教程--关联关系的映射
  2. echart 时间滚动_基于 ECharts 封装甘特图并实现自动滚屏
  3. 内网渗透,横向移动总结(mimikatz域控)
  4. “拼木头”算法挑战赛:禁忌搜索算法,用Javascript 跑
  5. 404 NOT FOUND!
  6. 挨批评了!Chrome 对用户隐私保护还不如 IE?
  7. FreeMarker 模板引擎快速入门 与 生成Word文档终极解决方案
  8. hihoCoder-1000-A+B
  9. 二元函数洛必达求极限_(整理)二元函数极限的求法.
  10. 多旅行商问题(MTSP)的相关论文总结
  11. java web安全框架_7.1 SpringSecurity安全框架
  12. php爆路径方法收集
  13. 投资银行业务过关必做1500题
  14. Educational Codeforces Round 112 (Rated for Div. 2)(补题)
  15. java和易语言对比_国外流行排行榜编程语言和易语言相比较的优势和劣势
  16. 【python初级】创建一块纯色画布
  17. 关于OpenCV的智能视频监控实现代码
  18. 抖音快手矩阵式操作 精准YL
  19. SpringBoot结合Quartz实现定时任务
  20. 5G技术在实际应用面临哪些困难?能否满足应急指挥通讯网络要求?

热门文章

  1. K8S Ingress的安装与使用
  2. java面试-多线程常见面试题
  3. 【复数表达】Deep Complex Network
  4. Android proguard 详解(一)
  5. mysql group by 用法解析
  6. Python安装包时遇到There was a problem confirming the ssl certificate…的解决办法
  7. WIFI能杀死植物吗?
  8. 欲望都市游戏设计 背景图层和UI图层的设计
  9. php滚动公告栏,jQuery实现上下滚动公告栏详细代码
  10. 在VS中如何设置自动换行