我想在H2O上使用PCA。在sklearn中,我们可以在火车集上应用fit
,然后transform
可以应用于测试集。在这里,我试图在H2O中遵循相同的逻辑。在FAQ中,它说:
使用h2o.prcomp构建PCA模型后,请使用h2o.predict 在原始数据框架和PCA模型上产生 维数减少的表示。使用cbind添加预测变量 列从原始数据框到由...生成的数据框 输出h2o.predict。此时,您可以建立监督 在新数据框架上学习模型。
基于此,我尝试了以下内容:
from h2o.transforms.decomposition import H2OPCA
trbb_pca = H2OPCA(k = 5, transform = "NORMALIZE", pca_method="GramSVD",
use_all_factor_levels=True, impute_missing=True,seed=24)
trbb_pca.train(x=trbb_cols, training_frame=train_h2o)
train_h2o_pca = train_h2o.cbind(trbb_pca.predict(train_h2o))
test_h2o_pca = test_h2o.cbind(trbb_pca.predict(test_h2o))
这是在H2O上实施PCA和测试集的方法吗?
答案 0 :(得分:1)
简短回答:是的。 H2O Python booklet中有一个示例,为清楚起见,在此复制:
In [25]: from h2o.transforms.decomposition import H2OPCA
In [26]: pca_decomp = H2OPCA(k=2, transform="NONE", pca_method="Power")
In [27]: pca_decomp.train(x=range(0,4), training_frame=iris_df)
pca Model Build Progress: [#######################################] 100%
In [28]: pca_decomp
Out[28]: Model Details
=============
H2OPCA : Principal Component Analysis
Model Key: PCA_model_python_1446220160417_10
Importance of components:
pc1 pc2
---------------------- ------- --------
Standard deviation 7.86058 1.45192
Proportion of Variance 0.96543 0.032938
Cumulative Proportion 0.96543 0.998368
ModelMetricsPCA: pca
**
Reported on train data.
**
MSE: NaN
RMSE: NaN
In [29]: pred = pca_decomp.predict(iris_df)
pca prediction progress: [#######################################] 100%
In [30]: pred.head() # Projection results
Out[30]:
PC1 PC2
------- -------
5.9122 2.30344
5.57208 1.97383
5.44648 2.09653
5.43602 1.87168
5.87507 2.32935
6.47699 2.32553
5.51543 2.07156
5.85042 2.14948
5.15851 1.77643
5.64458 1.99191
技术上有两种方法可以在Python中使用PCA估算器。旧方法位于h2o.transforms.decomposition.H2OPCA
。几年前,我们重写了Python API并移动了一些东西,包括将PCA变成一个合适的" H2OEstimator",所以它现在也位于这里:h2o.estimators.pca.H2OPrincipalComponentAnalysisEstimator
。这两种方法都有效,但对于新代码,我们推荐新代码,因为它与其他H2O估算器一致。
API是相同的,因此,如果您不想要,可以通过更改import语句切换到新的:
from h2o.transforms.decomposition import H2OPCA
为:
from h2o.estimators.pca import H2OPrincipalComponentAnalysisEstimator as H2OPCA