R实战 第九篇:数据标准化
数据标准化处理是数据分析的一项基础工作,不同评价指标往往具有不同的量纲,数据之间的差别可能很大,不进行处理会影响到数据分析的结果。为了消除指标之间的量纲和取值范围差异对数据分析结果的影响,需要对数据进行标准化处理,就是说,把数据按照比例进行缩放,使之落入一个特定的区域,便于进行综合分析。
在继续下文之前,先解释三个个术语:
(1)所谓量纲,简单来说,就是说数据的单位;有些数据是有量纲的,比如身高,而有些数据是没有量纲的,例如,男女比例。无量纲化,是指去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或者量级的指标能够进行和加权。
(2)数据的标准化是指将数据按照比例缩放,使之落入一个特定的区间。
(3)归一化是数据标准化中最简单的方式,目的是把数变为(0,1)之间的小数,把有量纲的数据转换为无量纲的纯数量。
常用的归一化方法主要有离差标准化和标准差标准化,r的scale()可以实现标准差标准化,也可以指定标准化之后数据的均值和标准差。
一,离差标准化
离差标准化是对原始数据进行线性变化,使数值映射到[0,1]区间中,转换公式是:

离差标准化保留了原来数据中存在的关系,是消除量纲和数据取值范围对数据分析产生影响的最简单方法,缺点是如果数据集中,且某个数值很大,那么标准化之后大部分值会接近于0,并且不会相差很大。
二,标准差标准化
经过该方法处理的数据的均值是0,标准差是1,转化公式是:

这种方法基于原始数据的均值(mean)和标准差(standard deviation)对数据进行标准化,是用的最多的数据的标准化方法,但是,均值和标准差受离群点的影响很大。
三,scale()标准化
R语言通常使用scale()函数对矩阵或数据框按列对数据进行标准化:
scale(x, center = TRUE, scale = TRUE)
参数注释:x是数值矩阵,当center=TRUE时,为数据对象x按列进行中心化;当scale=TRUE时,为数据对象x按列进行标准化。
- 中心化是把每个数据减去均值;
- 标准化是在中心化后的数据基础上再除以数据的标准差;
默认情况下,center=TRUE,scale=TRUE,scale()函数首先把一组数的每个数都减去这组数的平均值,然后除以这组数的均方根。
如果scale=TRUE,而center=FALSE,那么,scale()函数不会把一组数中的每个数减去平均值,而直接处以这组数据的均方根。
1,scale()函数的中心化和标准化
例如,向量v是数值向量,均值是 3,标准差是 1.581139:
v <- c(,,,,)
v.mean <- mean(v)
s <- sd(v)
使用scale()函数进行中心化操作,每个向量原始都减去均值3:
> scale(v,center=TRUE,scale=FALSE)
[,]
[,] -
[,] -
[,]
[,]
[,]
attr(,"scaled:center")
[]
使用scale()函数进行标准化操作,先减去均值,后除以均方根:
> scale(v,center=TRUE,scale=TRUE)
[,]
[,] -1.2649111
[,] -0.6324555
[,] 0.0000000
[,] 0.6324555
[,] 1.2649111
attr(,"scaled:center")
[]
attr(,"scaled:scale")
[] 1.581139
2,scale()函数的均值和标准差
默认情况下,使用scale()函数对矩阵或数据框的指定列进行均值为0,标准差为1的标准化操作:
mydata <-scale(mydata)
要对每一列进行任意均值和标准差的标准化,可以使用以下代码,其中M是均值,SD是标准差:
mydata <scale(mydata) *SD + M
参考文档:
R实战 第九篇:数据标准化的更多相关文章
- Spring Cloud实战 | 第九篇:Spring Cloud整合Spring Security OAuth2认证服务器统一认证自定义异常处理
本文完整代码下载点击 一. 前言 相信了解过我或者看过我之前的系列文章应该多少知道点我写这些文章包括创建 有来商城youlai-mall 这个项目的目的,想给那些真的想提升自己或者迷茫的人(包括自己- ...
- MyCat 学习笔记 第九篇.数据分片 之 数值分布
1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值分片也是比较简单,其实这个和数据取摸是类似的实现. 优.缺点同上一篇 2 环境说明 参考 <MyCat 学习笔记>第六篇. ...
- R语言基础篇——数据读写
1.键盘输入数据(适合小数据集) #创建一个指定模式但不含数据的变量 mydata<-data.frame(age=numeric(0),gender=character(0),weight=n ...
- R语言基础篇——数据对象
1.基本数据类型(numeric,logical,character,NA,double,complex,integer) 2.日期变量 常用函数 Sys.Date()-返回系统当前的日期,Sys.t ...
- 第九篇 数据表设计和保存item到json文件
上节说到Pipeline会拦截item,根据设置的优先级,item会依次经过这些Pipeline,所以可以通过Pipeline来保存文件到json.数据库等等. 下面是自定义json #存储item到 ...
- R绘图 第九篇:绘制散点图和气泡图(ggplot2)
绘制散点图(scatterplots)使用geom_point()函数,气泡图(bubblechart)也是一个散点图,只不过点的大小由一个变量(size)来控制.散点图潜在的最大问题是过度绘图:当一 ...
- R实战 第三篇:数据处理(基础)
数据结构用于存储数据,不同的数据结构对应不同的操作方法,对应不同的分析目的,应选择合适的数据结构.在处理数据时,为了便于检查数据对象,可以通过函数attributes(x)来查看数据对象的属性,str ...
- 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容
第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...
- Spring Boot 揭秘与实战(二) 数据存储篇 - 数据访问与多数据源配置
文章目录 1. 环境依赖 2. 数据源 3. 单元测试 4. 源代码 在某些场景下,我们可能会在一个应用中需要依赖和访问多个数据源,例如针对于 MySQL 的分库场景.因此,我们需要配置多个数据源. ...
随机推荐
- 用JS实现控制浏览器F12与右键功能
本文出至:新太潮流网络博客 用JS实现控制浏览器F12与右键功能,防止恶意窃取代码,或其他直接复制进去就好 //禁用右键 document.oncontextmenu = function () { ...
- guid是否为空的判断
Guid类型的变量不会为空,初始化没有赋值的GUID应该是00000000-0000-0000-0000-000000000000 . 正确的判断应该是if(Guid testId== Guid.Em ...
- Azure 中虚拟机的计划内维护
Azure 定期执行更新,以提高虚拟机的主机基础结构的可靠性.性能及安全性. 此类更新包括修补宿主环境(例如操作系统.虚拟机监控程序以及主机上部署的各种代理)中的软件组件.升级网络组件以及硬件解除授权 ...
- Jboss7或者wildfly部署war包的问题 1
1.Jboss的日志系统(standalone模式) 在介绍案例分析之前先来介绍一下Jboss提供的日志系统,下载EAP的zip包解压后的结构如下: 在standalone目录下有两个文件standa ...
- IP解析计算机名称
#-*- coding: UTF-8 -*- import subprocess,sys,threading reload(sys) sys.setdefaultencoding('utf-8') d ...
- Year 2038 problem (2038年问题)
From Wikipedia, the free encyclopedia Animation showing how the date would reset, represented ...
- mysql数据库管理工具(navicat for mysql) 10.1.7 绿色中文版
Navicat for MySQL:Navicat for MySQL 是一套专为 MySQL 设计的高性能数据库管理及开发工具.它可以用于任何版本 3.21 或以上的 MySQL 数据库服务器,并支 ...
- Hadoop HBase概念学习系列之META表和ROOT表(六)
在 HBase里的HRegion 里,谈过,HRegion是按照表名+开始/结束主键,即表名+主键范围来区分的.由于主键范围是连续的,所以一般用开始主键就可以表示相应的HRegion了. 不过,因为我 ...
- mysql workbench中my.ini路径不一样
mysql workbench中的my.ini路径与mysql服务中的路径不一样 删除mysql workbench的配置文件即可解决 win7下的配置文件路径: %APPDATA\MySQL\Wor ...
- Swift学习笔记十:属性
1.存储属性 1. 作为特定类或结构实例的一部分,存储属性存储着常量或者变量的值. 存储属性可分为变量存储属性(keywordvar描写叙述)和常量存储属性(keywordlet描写叙述) ...