Python中是否有用于进行数据转换的软件包:缩放,居中和Box-Cox转换以消除数据的偏差?
在R中,这可以使用set.seed(1)
predictors = data.frame(x1 = rnorm(1000,
mean = 5,
sd = 2),
x2 = rexp(1000,
rate=10))
require(caret)
trans = preProcess(predictors,
c("BoxCox", "center", "scale"))
predictorsTrans = data.frame(
trans = predict(trans, predictors))
包来完成:
sklearn
我知道slice.indices()
,但我无法找到上述处理函数。
答案 0 :(得分:0)
现在scikitlearn有一种方法可以执行您想要的操作。这提供了熟悉的API,并且易于放入管道中。
sklearn版本0.20.0具有通过power_transform方法可用的Box-Cox转换。此方法应用Box-Cox,然后对数据应用零均值,单位方差归一化。您可以使用(standardize = False)编辑默认标准化。
sklearn.preprocessing.power_transform(X,method ='box-cox', standardize = True,copy = True)
逐个应用幂变换以使数据更像高斯型。
幂变换是一组参数化,单调变换 用于使数据更像高斯型。这对于 与异方差(非恒定方差)相关的建模问题, 或其他需要正常的情况。
当前,power_transform()支持Box-Cox转换。 Box-Cox 要求输入数据严格为正。的最佳参数 通过以下方法估算稳定方差和最小化偏斜 最大可能性。
默认情况下,零均值,单位方差归一化应用于 转换后的数据。
http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.power_transform.html
主要文档页面没有提及它,但是power_transform也支持Yeo-Johnson转换。
文档在这里也有很好的解释: http://scikit-learn.org/stable/modules/preprocessing.html#preprocessing-transformer