sklearn机器学习库中数据的标准化

本篇博客主要借鉴的是http://www.cnblogs.com/chaosimple/p/4153167.html  这位大牛的博客,
最近在学习sklearn,写算法基本上都会用到标准化, 数据标准化一共有三种,废话不多说,看具体的代码:



#encoding:utf-8
'''
Created on 2015年10月13日
@author: ZHOUMEIXU204
'''

#sklearn数据标准化,数据标准化有三种
#第一种是Z-Score,或者去除均值和方差缩放
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)
x_scaled.mean(axis=0)
x_scaled.std(axis=0)
# 使用sklearn.preprocessing.StandardScaler类,
# 使用该类的好处在于可以保存训练集中的参数(均值、方差)
# 直接使用其对象转换测试集数据。
scaler=preprocessing.StandardScaler().fit(x)
scaler.mean_
scaler.std_
scaler.transform(x)  #跟上面的结果是一样的

#第二种是将属性缩放到一个指定范围,也是就是(x-min)/(max-min)
#依赖于preprocessing中的MinMaxScaler类
x_train=np.array([[1.,-1.,2.],
            [2.,0.,0.],
            [0.,1.,-1.]])

min_max_scaler=preprocessing.MinMaxScaler()
x_train_minmax=min_max_scaler.fit_transform(x_train)
print(x_train_minmax)
# 当然,在构造类对象的时候也可以直接指定最大最小值的范围:feature_range=(min, max),此时应用的公式变为:
# x_std=(X-X.min(axis=0))/(X.max(axis=0)-X.min(axis=0))
# x_scaled=X_std/(max-min)+min

#第三种是正则化Normalization

x=np.array([[1.,-1.,2.],
            [2.,0.,0.],
            [0.,1.,-1.]])
x_normalized=preprocessing.normalize(x,norm='l2')
print(x_normalized)

# 可以使用processing.Normalizer()类实现对训练集和测试集的拟合和转换
normalizer=preprocessing.Normalizer().fit(x)
print(normalizer)
normalizer.transform(x)



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值