Próbuję różnych kombinacji parametrów, aby określić, która kombinacja parametrów daje najlepszy wynik. W oparciu o mój kod pokazany poniżej, wypróbowałem już 8 różnych kombinacji, ale chcę wypróbować inną kombinację, która jest bez tf-idf.

Więc moje pytanie brzmi, co powinienem zrobić z parameters, aby pyton wiedział, że po 8 kombinacjach, teraz kontynuujemy bez tf-idf (tf__use_idf), abyśmy mogli mieć kolejne dodatkowe 4 kombinacje (tylko na podstawie binary i stop_word), tj. łącznie 12 kombinacji.

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_
0
Elvis 20 listopad 2019, 04:16

1 odpowiedź

Myślę, że szukasz czegoś takiego:

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
    },
]

Ten przykład dostałem z dokumentacji.

0
Cory Nezin 20 listopad 2019, 05:18