20220220数据的预处理

在scikit-learn中有一个preprocessing预处理模块,当某些数据不服从高斯分布,即不服从数学期望为0、方差为1的条件时我们可以使用它进行预处理以达到理想的数据效果。
下面以荷兰皇家气象学会的气象数据中一列记录日降雨量的数据为例。这些数据以.npy格式存放。我们分别计算预处理前后的期望值、标准差以及Anderson-Darling检验的结果。

"XU YONG KANG"
import numpy as np
from sklearn import preprocessing
from scipy.stats import anderson
#下面将针对来自荷兰皇家气象学会的气象数据进行预处理
# 选取一列记录日降雨量的数据
rain=np.load('rain.npy')
#得到一毫米为单位的日降水量
rain=0.1*rain

#该原始数据中将小于0.05的数值都将用作-1,但现将这些值设为0.025
rain[rain<0]=.05/2
print('Rain mean',rain.mean())         #期望值
print('Rain variance',rain.var())      #标准差
print('Anderson rain',anderson(rain))  #Anderson-Darling检验
#通过scale对数据进行缩放处理,使数学期望和方差达到要求
scaled=preprocessing.scale(rain)
print('Scaled mean',scaled.mean())
print('Scaled variance',scaled.var())
print('Anderson scaled',anderson(scaled))
#用binarize函数进行类型装换
binarized=preprocessing.binarize(rain.reshape(1,-1))
print(np.unique(binarized),binarized.sum())
#进行分类时,类LabelBinarize可以用整数来标注类别
lb=preprocessing.LabelBinarizer()
lb.fit(rain.astype(int))
print(lb.classes_)

我们会发现在对数据进行处理前,得出的值是

Rain mean 2.179195942665883
Rain variance 18.803443919014683
Anderson rain AndersonResult(statistic=5731.267850009339, critical_values=array([0.576, 0.656, 0.787, 0.918, 1.092]), significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]))

发现该数据不满足数学期望为0,方差为1的要求,因此它不符合正态分布,同时数据分布情况也完全不对称,它不是高斯分布。
当我们对数据进行缩放处理后,结果如下:

Scaled mean 3.4130160280768244e-17
Scaled variance 1.0
Anderson scaled AndersonResult(statistic=5731.267850009339, critical_values=array([0.576, 0.656, 0.787, 0.918, 1.092]), significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]))

会发现数学期望和标准差已经满足要求,但分布仍不对称。
有时需要把特征值由数值型转化为布尔型`

binarized=preprocessing.binarize(rain.reshape(1,-1))
print(np.unique(binarized),binarized.sum())
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值