gridsearchcv com tfidf e vetorizador de contagem

1
Voto

Desejo usar GridSearchCV para ajuste de parâmetro. Também é possível verificar com GridSearchCV se CountVectorizer ou TfidfVectorizer funcionam melhor? Minha ideia:

eu quero usar GridSearchCV para ajuste de parâmetro. Também é possível verificar com GridSearchCV se CountVectorizer ou TfidfVectorizer funcionam melhor? Minha ideia:
pipeline=Pipeline([
           ('vect', TfidfVectorizer()),
           ('clf', SGDClassifier()),
])
parameters={
'vect__max_df': (0.5, 0.75, 1.0),
'vect__max_features': (None, 5000, 10000, 50000),
'vect__ngram_range': ((1, 1), (1, 2), (1,3),  
'tfidf__use_idf': (True, False),
'tfidf__norm': ('l1', 'l2', None),
'clf__max_iter': (20,),
'clf__alpha': (0.00001, 0.000001),
'clf__penalty': ('l2', 'elasticnet'),
'clf__max_iter': (10, 50, 80),
}

grid_search=GridSearchCV(pipeline, parameters, n_jobs=-1, verbose=1, cv=5)
pipeline=Pipeline([ ('vect', TfidfVectorizer()), ('clf', SGDClassifier()), ]) parameters={ 'vect__max_df': (0.5, 0.75, 1.0), 'vect__max_features': (None, 5000, 10000, 50000), 'vect__ngram_range': ((1, 1), (1, 2), (1,3), 'tfidf__use_idf': (True, False), 'tfidf__norm': ('l1', 'l2', None), 'clf__max_iter': (20,), 'clf__alpha': (0.00001, 0.000001), 'clf__penalty': ('l2', 'elasticnet'), 'clf__max_iter': (10, 50, 80), } grid_search=GridSearchCV(pipeline, parameters, n_jobs=-1, verbose=1, cv=5) pipeline=Pipeline ([ ('vect', TfidfVectorizer ()), ('clf', SGDClassifier ()), ]) parâmetros={ 'vect__max_df': (0,5, 0,75, 1,0), 'vect__max_features': (Nenhum, 5000, 10000, 50000), 'vect__ngram_range': ((1, 1), (1, 2), (1,3), 'tfidf__use_idf': (verdadeiro, falso), 'tfidf__norm': ('l1', 'l2', Nenhum), 'clf__max_iter': (20,), 'clf__alpha': (0,00001, 0,000001), 'clf__penalty': ('l2', 'elasticnet'), 'clf__max_iter': (10, 50, 80), } grid_search=GridSearchCV (pipeline, parâmetros, n_jobs=-1, verbose=1, cv=5)

Minha ideia: CountVectorizer é o mesmo que TfidfVectorizer com use_idf=False e normalize=None. Se GridSearchCV fornecer este como o melhor resultado esses parâmetros, então CountVectorizer é a melhor opção. Isso está correto?

Minha ideia: CountVectorizer é o mesmo que TfidfVectorizer com use_idf=False e normalize=None. Se GridSearchCV fornece esse como o melhor resultado esses parâmetros, então CountVectorizer é a melhor opção. Isso é correto?

Desde já, obrigado :)

Obrigado desde já :)

Fonte

python scikit learn sentiment analysis machine learning gridsearchcv

1 Responda
1
Voto

Depois de incluir um determinado passo com seu nome correspondente no Pipeline, você pode acessá-lo a partir da grade de parâmetros e adicionar outros parâmetros, ou vetorizadores, neste caso, na grade. Você também pode ter uma lista de grades em um único pipeline:

from sklearn.feature_extraction.text import CountVectorizer

pipeline=Pipeline([
           ('vect', TfidfVectorizer()),
           ('clf', SGDClassifier()),
])
parameters=[{
    'vect__max_df': (0.5, 0.75, 1.0),
    'vect__max_features': (None, 5000, 10000, 50000),
    'vect__ngram_range': ((1, 1), (1, 2), (1,3),)  
    'tfidf__use_idf': (True, False),
    'tfidf__norm': ('l1', 'l2', None),
    'clf__max_iter': (20,),
    'clf__alpha': (0.00001, 0.000001),
    'clf__penalty': ('l2', 'elasticnet'),
    'clf__max_iter': (10, 50, 80)
},{
    'vect': (CountVectorizer(),)
    # count_vect_params...
    'clf__max_iter': (20,),
    'clf__alpha': (0.00001, 0.000001),
    'clf__penalty': ('l2', 'elasticnet'),
    'clf__max_iter': (10, 50, 80)
}]

grid_search=GridSearchCV(pipeline, parameters)
Fonte

-anddt

-yatu

-anddt

1 -Abtc

Você pode interessar

© 2021   OlaMundo.Org