温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中有哪些数据预处理方法

发布时间:2021-07-10 14:21:49 来源:亿速云 阅读:352 作者:Leah 栏目:大数据

Python中有哪些数据预处理方法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

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

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

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

from sklearn import preprocessing
from sklearn.datasets import load_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变换可以明显地改善数据的正态性、对称性和方差相等性,对许多实际数据都是行之有效。变化方式如下:

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

Python中有哪些数据预处理方法

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)

看完上述内容,你们掌握Python中有哪些数据预处理方法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI