用于数据扩展,居中和Box-Cox转换的Python库

时间:2015-11-26 17:19:17

标签: python scikit-learn

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(),但我无法找到上述处理函数。

1 个答案:

答案 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