【问题标题】:Remove input dimensions in a sklearn pipeline?删除 sklearn 管道中的输入维度?
【发布时间】:2020-06-09 02:42:10
【问题描述】:

我在 sklearn 中有以下管道:

pipe = sklearn.pipeline.Pipeline(steps=[
    ('scalar', StandardScaler()),
    ('pca', utils.PCA(n_components=n_pca_components)),
    ('reduce',umap.UMAP(n_neighbors=umap_n_neighbors, min_dist=umap_min_dist, metric=umap_metric)),
    ('model',utils.DBSCAN(eps=dbscan_eps,min_samples=dbscan_min_samples)),    
])

有没有一种简单的方法来消除 pca 和 umap 之间步骤中的一个维度?

因此,如果我的 pca 输出为 (0:100,0:10),并且我想在将管道中的数据传递给 umap (0:100,1:10) 之前删除第一个通道

【问题讨论】:

    标签: scikit-learn


    【解决方案1】:

    您可能在两个阶段之间有一个中间步骤,以通过 FunctionTransformer 实现您想要的目标

    from sklearn.preprocessing import FunctionTransformer
    
    def custom_function(x):
        # Add your code here
    
    pipe = sklearn.pipeline.Pipeline(steps=[
        ('scalar', StandardScaler()),
        ('pca', utils.PCA(n_components=n_pca_components)),
        ('remove_dimension', FunctionTransformer(custom_function))
        ('reduce',umap.UMAP(n_neighbors=umap_n_neighbors, min_dist=umap_min_dist, metric=umap_metric)),
        ('model',utils.DBSCAN(eps=dbscan_eps,min_samples=dbscan_min_samples)),    
    ])
    

    【讨论】:

      猜你喜欢
      • 2020-02-19
      • 2021-08-14
      • 1970-01-01
      • 2016-07-15
      • 2019-04-03
      • 1970-01-01
      • 2014-05-14
      • 2016-07-06
      • 1970-01-01
      相关资源
      最近更新 更多