sklearn数据预处理-scale

对数据按列属性进行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两个接口的设计思路吧。

时间: 2024-10-16 10:08:35

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

sklearn数据预处理

一.standardization 之所以标准化的原因是,如果数据集中的某个特征的取值不服从标准的正太分布,则性能就会变得很差 ①函数scale提供了快速和简单的方法在单个数组形式的数据集上来执行标准化操作 from sklearn import preprocessing import numpy as np X=np.array([[1,-1,2], [2,0,0], [0,1,-1]]) X_scaled=preprocessing.scale(X) print(X_scaled) "&q

sklearn 数据预处理

http://www.cnblogs.com/chaosimple/p/4153167.html 其中介绍了sklearn.preprocessing.StandardScaler类,使用该类的好处在于可以保存训练集中的参数(均值.方差)直接使用其对象转换测试集数据. >>> scaler = preprocessing.StandardScaler().fit(X) >>> scaler StandardScaler(copy=True, with_mean=True

08-05 细分构建机器学习应用程序的流程-数据预处理

目录 细分构建机器学习应用程序的流程-数据预处理 一.1.1 缺失值处理 1.1 1.1.1 删除缺失值 1.1.1 4.6.1.2 填充缺失值 二.1.2 异常值处理 三.1.3 自定义数据类型编码 四.1.4 通过sklearn对数据类型编码 五.1.5 独热编码 5.1 1.5.1 sklearn做独热编码 5.2 1.5.2 pandas做独热编码 六.1.6 数据标准化 6.1 1.6.1 最小-最大标准化 6.2 1.6.2 Z-score标准化 七.1.7 二值化数据 八.1.8

Python初探——sklearn库中数据预处理函数fit_transform()和transform()的区别

敲<Python机器学习及实践>上的code的时候,对于数据预处理中涉及到的fit_transform()函数和transform()函数之间的区别很模糊,查阅了很多资料,这里整理一下: # 从sklearn.preprocessing导入StandardScaler from sklearn.preprocessing import StandardScaler # 标准化数据,保证每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值而主导 ss = Standard

python data analysis | python数据预处理(基于scikit-learn模块)

原文:http://www.jianshu.com/p/94516a58314d Dataset transformations| 数据转换 Combining estimators|组合学习器 Feature extration|特征提取 Preprocessing data|数据预处理 1 Dataset transformations scikit-learn provides a library of transformers, which may clean (see Preproce

数据预处理(数据的操作2)

2.常用数据预处理方法 这个部分总结的是在Python中常见的数据预处理方法. 2.1标准化(Standardization or Mean Removal and Variance Scaling) 变换后各维特征有0均值,单位方差.也叫z-score规范化(零均值规范化).计算方式是将特征值减去均值,除以标准差. sklearn.preprocessing.scale(X) 一般会把train和test集放在一起做标准化,或者在train集上做标准化后,用同样的标准化去标准化test集,此时

数据预处理

转载自:http://2hwp.com/2016/02/03/data-preprocessing/ 常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardization or Mean Removal and Variance Scaling) 变换后各维特征有0均值,单位方差.也叫z-score规范化(零均值规范化).计算方式是将特征值减去均值,除以标准差. 1 sklearn.preprocessing.scale(X) 一般会

python 机器学习之数据预处理

#数据预处理方法,主要是处理数据的量纲和同趋势化问题. import numpy as np from sklearn import preprocessing #零均值规范 data=np.random.rand(3,4)#随机生成3行4列的数据 data_standardized=preprocessing.scale(data)#对数据进行归一化处理,即每个数值减去均值除以方差 主要用于svm #线性数据变换最大最小化处理 data_scaler=preprocessing.MinMaxS

ML:数据预处理知识图谱

pandas 强大的数据处理工具学习目标:无需记忆确切的api名称,需要知识pandas能做什么,并根据实际需要使用的功能可以快速索引查询. 速查手册: (1) pandas中文给出的教学文档 https://www.pypandas.cn/docs/getting_started/10min.html (2) pandas常用中文api文档 说明:给出了常用的数据process的api集合 https://blog.csdn.net/weixin_44129250/article/detail