数据预处理之无量纲化、缺失值处理(三)
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个值加权平均来估计该样本的缺失数据。)等等。
数据预处理之无量纲化、缺失值处理(三)相关推荐
- 数据预处理之中心化(零均值化)与标准化(归一化)
数据预处理之中心化(零均值化)与标准化(归一化) 目的: 通过中心化和标准化处理,最终得到均值为0,标准差为1的服从标准正态分布的数据.可以取消由于量纲不同.自身变异或者数值相差较大所引起的误差. 原 ...
- pandas用众数填充缺失值_【机器学习】scikit-learn中的数据预处理小结(归一化、缺失值填充、离散特征编码、连续值分箱)...
一.概述 1. 数据预处理 数据预处理是从数据中检测,修改或删除不准确或不适用于模型的记录的过程 可能面对的问题有:数据类型不同,比如有的是文字,有的是数字,有的含时间序列,有的连续,有的间断. 也可 ...
- eviews如何处理缺失数据填补_python数据预处理之异常值、缺失值处理方法
数据预处理是明确分析目标与思路之后进行数据分析的第一步,也是整个项目中最基础.花费时间较长的工作.除了互联网埋点的数据或企业内部的业务数据之外,往往我们拿到的,比如说网上采集的数据并不是那样规整,这类 ...
- matlab 均值中心化,数据预处理之中心化(零均值化)与标准化(归一化)
在机器学习回归问题,以及训练神经网络过程中,通常需要对原始数据进行中心化(零均值化)与标准化(归一化)处理. 背景 在数据挖掘数据处理过程中,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响 ...
- 数据预处理相关Demo(缺失值、均值方差标准化、极差法归一化、主成分分析)
1 缺失值处理 1.1 pandas中利用fillna()函数 通过fillna()方法,可以去掉数据集中的空值(nan值). # 数据生成 import pandas as pd import nu ...
- 【建议收藏】机器学习数据预处理(一)——缺失值处理方法(内附代码)
- 机器学习笔记六——特征工程之数据预处理
特征工程之数据预处理 1. 处理缺失值 2. 处理异常值 2.1 异常值检测 2.2异常值处理 3.离散特征的连续化处理 4.连续特征的离散化处理 5. 处理类别不平衡问题 6. 图片数据扩充 数据预 ...
- 数据预处理和特征选择
背景介绍 结合网上一些相关资料,我们整理输出了这篇文章,本文说明了数据的重要性以及数据在各个环节和领域地位.更重要的是,这篇文章会详尽的讲解数据预处理和特征选择的原理及方法细节. 数据是什么? 通过观 ...
- 机器学习实战——特征工程之数据预处理
机器学习实战的特征工程主要包含数据预处理.特征构建.特征选择三步,首先来介绍数据预处理. 我选择python作为工具,并将主要用到pandas.numpy等数据工具库.加载库: import pand ...
- 机器学习之数据预处理——归一化,标准化
机器学习之数据预处理--归一化,标准化 基础知识 1.什么是特征预处理 2.预处理方法 : 3.预处理API: 数据的标准化(normalization)和归一化 数据的标准化 数据归一化 1 把数变 ...
最新文章
- hibernate教程--关联关系的映射
- echart 时间滚动_基于 ECharts 封装甘特图并实现自动滚屏
- 内网渗透,横向移动总结(mimikatz域控)
- “拼木头”算法挑战赛:禁忌搜索算法,用Javascript 跑
- 404 NOT FOUND!
- 挨批评了!Chrome 对用户隐私保护还不如 IE?
- FreeMarker 模板引擎快速入门 与 生成Word文档终极解决方案
- hihoCoder-1000-A+B
- 二元函数洛必达求极限_(整理)二元函数极限的求法.
- 多旅行商问题(MTSP)的相关论文总结
- java web安全框架_7.1 SpringSecurity安全框架
- php爆路径方法收集
- 投资银行业务过关必做1500题
- Educational Codeforces Round 112 (Rated for Div. 2)(补题)
- java和易语言对比_国外流行排行榜编程语言和易语言相比较的优势和劣势
- 【python初级】创建一块纯色画布
- 关于OpenCV的智能视频监控实现代码
- 抖音快手矩阵式操作 精准YL
- SpringBoot结合Quartz实现定时任务
- 5G技术在实际应用面临哪些困难?能否满足应急指挥通讯网络要求?