对数据按列属性进行scale处理后,每列的数据均值变成0,标准差变为1。可通过下面的例子加深理解:

from sklearn import preprocessing
import numpy as np

测试数据:

X = np.array([[1., -1., 2.], [2., 0., 0.], [0., 1., -1.]])

使用sklearn进行scale处理时,有两种方式可供选择。

方式1:直接使用preprocessing.scale()方法:

X_scaled = preprocessing.scale(X)

得到的X_scaled中每列的均值为0,方差为1

方式2:使用StandardScaler类来处理

scaler = preprocessing.StandardScaler().fit(X)

得到的scaler会计算得出每个属性列的均值、方差,但并没有得出最终的数据处理结果。要得到X的scale结果,可以继续执行transform方法:

X_scaled = scaler.transform(X)

这里刚开始学习时,会有疑问:为什么transform还需要传一个X参数?

StandardScaler将数据处理分为fit、transform两步。在fit中,仅仅计算出数据预处理算法的一些参数。比如这里主要计算出来每个列属性的均值、方差。但并没有通过算法:(x-mean)/std 对每个数据进行处理,真正的数据处理,放到了transform步骤中。

transform的参数可以是X,这样得到的效果跟直接使用preprocessing.scale(X)相同。也可以不同,当传入的参数不同时,scale会仍然使用计算好的均值、方差,按照算法:(x-mean)/std 来对每个数据处理。

分为fit、transform两个步骤后,那么处理训练集X时,可以fit(X),transform(X)。后面处理测试集时,直接使用transform即可。

这可能就是sklearn.preprocessing的fit、transform两个接口的设计思路吧。

sklearn数据预处理-scale的更多相关文章

  1. sklearn数据预处理

    一.standardization 之所以标准化的原因是,如果数据集中的某个特征的取值不服从标准的正太分布,则性能就会变得很差 ①函数scale提供了快速和简单的方法在单个数组形式的数据集上来执行标准 ...

  2. sklearn 数据预处理1: StandardScaler

    作用:去均值和方差归一化.且是针对每一个特征维度来做的,而不是针对样本. [注:] 并不是所有的标准化都能给estimator带来好处. “Standardization of a dataset i ...

  3. 数据预处理及sklearn方法实现

    1.标准化(中心化) 在许多机器学习执行前,需要对数据集进行标准化处理.因为很对算法假设数据的特征服从标准正态分布.所以如果不对数据标准化,那么算法的效果会很差. 例如,在学习算法的目标函数,都假设数 ...

  4. sklearn-数据预处理scale

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  5. 【sklearn】数据预处理 sklearn.preprocessing

    数据预处理 标准化 (Standardization) 规范化(Normalization) 二值化 分类特征编码 推定缺失数据 生成多项式特征 定制转换器 1. 标准化Standardization ...

  6. sklearn学习笔记(一)——数据预处理 sklearn.preprocessing

    https://blog.csdn.net/zhangyang10d/article/details/53418227 数据预处理 sklearn.preprocessing 标准化 (Standar ...

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

    一.标准化(Z-Score),或者去除均值和方差缩放 公式为:(X-mean)/std  计算时对每个属性/每列分别进行. 将数据按期属性(按列进行)减去其均值,并处以其方差.得到的结果是,对于每个属 ...

  8. sklearn中的数据预处理和特征工程

    小伙伴们大家好~o( ̄▽ ̄)ブ,沉寂了这么久我又出来啦,这次先不翻译优质的文章了,这次我们回到Python中的机器学习,看一下Sklearn中的数据预处理和特征工程,老规矩还是先强调一下我的开发环境是 ...

  9. matlab、sklearn 中的数据预处理

    数据预处理(normalize.scale) 0. 使用 PCA 降维 matlab: [coeff, score] = pca(A); reducedDimension = coeff(:,1:5) ...

随机推荐

  1. access restriction

    一.既然存在访问规则,那么修改访问规则即可.打开项目的Build Path Configuration页面,打开报错的JAR包,选中Access rules条目,选择右侧的编辑按钮,添加一个访问规则即 ...

  2. iOS之tabbar图片去除渲染以及字体颜色统一配置

    转发:http://www.cnblogs.com/qianLL/p/5521228.html   方式一  代码实现 这种要写很多代码 ,每个控制器都要写   UIImage *image=[UII ...

  3. Sasha and Array

    Sasha and Array time limit per test 5 seconds memory limit per test 256 megabytes input standard inp ...

  4. ASP对数据库的操作方法

    ASP与数据库-连接.写入.修改.删除.显示代码属性与方法 PageCount 属性: 决定 Recordset 对象包括多少“页”的数据.        这里的“页”是数据记录的集合,大小等于 Pa ...

  5. IE6里面子集尺寸大的会把父亲撑大

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. 转:Selenium的延迟等待

    Selenium的延迟等待分为 显式等待(Explicit Wait) & 隐式等待(Implicit Wait). 1.显式等待 显式等待,就是明确的要等到某个元素的出现或者是某个元素的可点 ...

  7. java程序中抛出异常的两种方式,及异常抛出的顺序

    在java中,会经常遇到异常,java提供了两种抛出异常的方式. 方式一: throws ,抛出具体代码中的异常,这种方式编译器都会提示,举例: public static void main(Str ...

  8. android异步加载AsyncTask

    http://blog.csdn.net/abc5382334/article/details/17097633 http://keeponmoving.iteye.com/blog/1515611 ...

  9. nginx的内页跳转总结

      刚进公司的时候老大一直在要求php做内页跳转,当时也不太了解细节所以一直没有说话.后来php问我你会不会做内页跳转,我说会一点就做了几个,从此搞内页跳转搞了两个星期.至于为什么做内页跳转哪就暂时不 ...

  10. EasyUi中的datagird中a标签的click事件无法触发?(已解决)

    ***************************2015-10-29 21:07************************* 问题如下: datagrid最后一列编辑中有如下a标签 { f ...