如何解决我应该缩放pca的box cox数据吗?
我已使用电源变压器转换了数据集(9列),以生成标准化的高斯分布。
from sklearn.preprocessing import PowerTransformer
pt = PowerTransformer(method='yeo-johnson',standardize=True)
#you can get the original data back using inverse_transform(X)
X_train=pt.fit_transform(X_train)
#fit the model only on the train set and transform the test set
X_test=pt.transform(X_test)
因此,对于大多数特征(均值和单位方差为零)的大多数特征,我的数据集几乎都具有高斯分布。然后我应用了 PolynomialFeatures ():
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree = 4)
X_poly = poly.fit_transform(X_train)
LR2 = LinearRegression()
LR2.fit(X_poly,y_train)
添加多项式特征后,我有2380列会导致过度拟合,因此我想使用 PCA 进行降维,但我读到某个地方PCA需要对数据进行“缩放”(这通常意味着使用类似MinMaxScaler()的值来更改值的范围。
那么在将PCA应用于boxcox转换(和标准化)的数据集之前,我应该使用MinMaxScaler()吗?
解决方法
标准化在PCA中很重要,因为它是最大化方差的练习。它将原始数据投影到最大化方差的方向上。下面的第一张图显示了在未对数据进行归一化的不同主成分中解释的总方差量。如您所见,似乎组件一解释了数据中的大部分差异。
查找更多详细信息here
在您的情况下,您正在使用具有标准化(将mean和std设置为0和1),设置为True
的幂变换。在PCA之前,通常不希望进行归一化(将变量范围设置在0到1之间),因为在处理数据和异常值的现有偏度方面,它没有太多作用。
选中this。
因此,我建议如果您的功能已经标准化,则不需要Min Max Scaler。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。