python boxcox1p_Python数据分析:常见的数据预处理方法

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于数据杂论,作者:Wpc7113

37801e81397c95edad59602d461830b5.png

Python 数据分析入门案例讲解

https://www.bilibili.com/video/BV18f4y1i7q9/

1.标准化:去均值,方差规模化

Standardization标准化:将特征数据的分布调整成标准正态分布,也叫高斯分布,也就是使得数据的均值为0,方差为1.

标准化的原因在于如果有些特征的方差过大,则会主导目标函数从而使参数估计器无法正确地去学习其他特征。

标准化的过程为两步:去均值的中心化(均值变为0);方差的规模化(方差变为1)。

from sklearn importpreprocessingfrom sklearn.datasets importload_iris

iris=load_iris()

X, y=iris.data, iris.target'''标准变换'''scaler=preprocessing.StandardScaler().fit(X)

x_scaler=scaler.transform(X)

2. 最小-最大规范化

最小-最大规范化对原始数据进行线性变换,变换到[0,1]区间(也可以是其他固定最小最大值的区间)

min_max_scaler =preprocessing.MinMaxScaler()

x_train_minmax= min_max_scaler.fit_transform(X)

3.MaxAbsScaler

max_abs_scaler =preprocessing.MaxAbsScaler()

x_train_maxabs= max_abs_scaler.fit_transform(X)

4.RobustScaler:带有outlier的数据的标准化

transformer =preprocessing.RobustScaler().fit(X)

x_robust_scaler=transformer.transform(X)

5.QuantileTransformer 分位数变换

quantile_transformer = preprocessing.QuantileTransformer(random_state=0)

X_train_trans= quantile_transformer.fit_transform(X)

6.Box-Cox

Box-Cox变换是Box和Cox在1964年提出的一种广义幂变换方法,是统计建模中常用的一种数据变换,用于连续的响应变量不满足正态分布的情况。Box-Cox变换之后,可以一定程度上减小不可观测的误差和预测变量的相关性。Box-Cox变换的主要特点是引入一个参数,通过数据本身估计该参数进而确定应采取的数据变换形式,Box-Cox变换可以明显地改善数据的正态性、对称性和方差相等性,对许多实际数据都是行之有效。变化方式如下:

91b1820a5497648e2daef1f79f053ed8.png

pt = preprocessing.PowerTransformer(method='box-cox', standardize=False)

pt.fit_transform(X)

a404bae9ef1f15c60a7a535da27cd7b5.png

7.规范化(Normalization)

规范化是将不同变化范围的值映射到相同的固定范围,常见的是[0,1],此时也称为归一化。

X_normalized = preprocessing.normalize(X, norm='l2')

8.独热编码

enc = preprocessing.OneHotEncoder(categories='auto')

enc.fit(y.reshape(-1,1))

y_one_hot=enc.transform(y.reshape(-1,1))

y_one_hot.toarray()

9.Binarizer二值化

binarizer = preprocessing.Binarizer(threshold=1.1)

binarizer.fit(X)

binarizer.transform(X)

10.多项式变换

poly =preprocessing.PolynomialFeatures(2)

poly.fit_transform(X)

11.自定义变换

transformer = preprocessing.FunctionTransformer(np.log1p, validate=True)

transformer.fit(X)

log1p_x=transformer.transform(X)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值