sklearn的数据预处理
2018-01-23 00:56
190 查看
数据预处理
概要
sklearn是一个比较常用的机器学习库,其中的sklearn.preprocessing包含了常用的预处理函数,一般在kaggle等数据竞赛网站拿到数据的时候,首先要观察数据特征,分布等信息,然后进行数据预处理。数据预处理有利于计算机进行计算。原始数据存在的问题:
1. 存在缺失值
2. 存在异常点及噪声
3. 各个特征的取值范围比例不一
4. 数据表现形式不一
5. 维度过高,部分特征间线性相关
Z-score标准化
Z-score标准化就是将数据变化为服从均值为0,方差为1的正太分布,对于不知道数据最大最小值的时候适用,但是会改变数据的分布。from sklearn import preprocessing
import numpy as np
x = np.array([[1., 0., 2.],
[0., -2., 1.],
[-1., 1., 0.]])
#第一种方法
x_scale_1 = preprocessing.scale(x)
'''
[[ 1.22474487 0.26726124 1.22474487]
[ 0. -1.33630621 0. ]
[-1.22474487 1.06904497 -1.22474487]]
'''
#第二种方法
scaler = preprocessing.StandardScaler()
x_scale_2 = scaler.fit_transform(x)
'''
[[ 1.22474487 0.26726124 1.22474487]
[ 0. -1.33630621 0. ]
[-1.22474487 1.06904497 -1.22474487]]
'''
StandardScaler(copy=True, with_mean=True, with_std=True)
with_mean=False #不减去均值
with_std=False #不除以标准差
MinMax标准化
MinMax标准化适用于知道最大值和最小值的数据,标准化后的数据将会落在[0,1]区间内,如果有异常值则会将数据分布不均匀,向异常值的另一侧堆积。scaler = preprocessing.MinMaxScaler()
x_scaled = scaler.fit_transform(x)
'''
before
[[ 1. 0. 2.]
[ 0. -2. 1.]
[-1. 1. 0.]]
after
[[ 1. 0.66666667 1. ]
[ 0.5 0. 0.5 ]
[ 0. 1. 0. ]]
'''
MaxAbs标准化
MaxAbs标准化根据最大值的绝对值进行标准化,标准化后的数据将会落在[-1, 1]scaler = preprocessing.MaxAbsScaler() x_scaled = scaler.fit_transform(x) ''' before [[ 1. 0. 2.] [ 0. -2. 1.] [-1. 1. 0.]] after [[ 1. 0. 1. ] [ 0. -1. 0.5] [-1. 0.5 0. ]] '''
相关文章推荐
- 关于使用Sklearn进行数据预处理 —— 缺失值(Missing Value)处理
- 数据预处理(2)—— One-hot coding 独热编码#分别使用 pandans.dummies 和 sklearn.feature_extraction.DictVectorizer 进行处理
- sklearn包中的分析算法对 数据进行处理
- sklearn的preprocessing模块--数据预处理
- DataFrame通过sklearn做数据预处理
- sklearn-数据预处理scale
- 使用sklearn来处理类别数据
- 数据归一化和其在sklearn中的处理
- Sklearn用户手册(三): 文本数据的处理
- 【原】关于使用Sklearn进行数据预处理 —— 缺失值(Missing Value)处理
- Python下的机器学习工具sklearn--数据预处理
- sklearn中的数据预处理
- 数据挖掘sklearn中的的特征工程处理
- sklearn学习记录二:数据预处理
- sklearn中的数据预处理
- 在jquery中处理带有命名空间的XML数据
- webService返回自定义类型的数据处理
- SQL SERVER2000教程-第五章 处理数据 第十三节 设定数字日期格式
- Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)
- matlab中相关数据的处理