0

我正在尝试不同的参数组合来确定实际上哪种参数组合能给我最好的结果。根据下面显示的代码,我已经尝试了 8 种不同的组合,但我想尝试其他没有 tf-idf 的组合。

所以我的问题是我应该怎么做parameters才能让python知道在8个组合之后,现在我们继续在没有tf-idf(tf__use_idf)的情况下继续进行,这样我们就可以有另一个额外的4个组合(仅基于binaryand stop_word)即,总共12个组合。

pipeline = Pipeline([
    ('vect', CountVectorizer()),
    ('tf', TfidfTransformer()),
    ('clf', SGDClassifier(loss='log', penalty='l2', max_iter=20, verbose=1)),
    ])

    parameters = {
    'vect__stop_words': ('english', None),
    'vect__binary': (True, False),
    'tf__use_idf': (True, False),
    }

    grid_search = GridSearchCV(pipeline, parameters, cv=5, n_jobs=-1, verbose=1)
    grid_search.fit(train.x, train.y)
    best_parameters = grid_search.best_params_
4

1 回答 1

0

我想你正在寻找这样的东西:

pipe = Pipeline([
    # the reduce_dim stage is populated by the param_grid
    ('reduce_dim', 'passthrough'),
    ('classify', LinearSVC(dual=False, max_iter=10000))
])
param_grid = [
    {
        'reduce_dim': [PCA(iterated_power=7), NMF()],
        'reduce_dim__n_components': N_FEATURES_OPTIONS,
        'classify__C': C_OPTIONS
    },
    {
        'reduce_dim': [SelectKBest(chi2)],
        'reduce_dim__k': N_FEATURES_OPTIONS,
        'classify__C': C_OPTIONS
    },
]

我从文档中得到了这个例子。

于 2019-11-20T02:18:06.370 回答