【问题标题】:How to tune quantile_range in RobustScaler in sklearn Pipeline?如何在 sklearn 管道中调整 RobustScaler 中的 quantile_range?
【发布时间】:2020-06-18 07:30:04
【问题描述】:
pipeline = Pipeline([
                     ('scale', RobustScaler(quantile_range=()))
                     ('classify', OneVsRestClassifier(SVC()))
                      ],
                     memory=self.memory)

鉴于该管道,如何使用 GridSearchCV 调整 RobustScaler 中的 quantile_range?默认的 quantile_range 为 (25.0, 75.0)。我想尝试的替代方案是 (5.0, 95.0), (10.0, 90.0), ..., (25.0, 75.0)。如何做到这一点? 我想,params_grid 应该是这样的:

params_grid = [{'scale__quantile_range': ??}]

但我不知道在问号占位符中放什么。

【问题讨论】:

    标签: python-3.x machine-learning scikit-learn gridsearchcv


    【解决方案1】:

    要尝试的超参数应该是可迭代的。试试:

    from sklearn.preprocessing import RobustScaler
    from sklearn.pipeline import Pipeline
    from sklearn.multiclass import OneVsRestClassifier
    from sklearn.svm import SVC
    from sklearn.model_selection import GridSearchCV
    from sklearn.datasets import make_classification
    
    pipeline = Pipeline([
                         ('scale', RobustScaler(quantile_range=())),
                         ('classify', OneVsRestClassifier(SVC()))
                          ],
                         memory=None)
    
    params = {"scale__quantile_range":[(25.0,75.0),(10.0,90.0),(1.0,99.0)]}
    
    grid_cf = GridSearchCV(pipeline, param_grid=params)
    
    X,y = make_classification(1000,10,n_classes=2,random_state=42)
    
    grid_cf.fit(X,y)
    
    grid_cf.best_params_
    
    {'scale__quantile_range': (1.0, 99.0)}
    

    【讨论】:

      猜你喜欢
      • 2021-06-17
      • 1970-01-01
      • 2017-08-18
      • 2017-07-01
      • 2016-07-06
      • 2020-03-01
      • 2014-11-07
      • 2018-05-17
      • 2015-03-26
      相关资源
      最近更新 更多