我正在尝试使用网格搜索 CV 为我的逻辑回归估计器找到一组最佳超参数,并使用管道构建模型:
我的问题是当尝试使用我获得的最佳参数
grid_search.best_params_来构建逻辑回归模型时,准确度与我得到的不同
grid_search.best_score_
Run Code Online (Sandbox Code Playgroud)
这是我的代码
x=tweet["cleaned"]
y=tweet['tag']
X_train, X_test, Y_train, Y_test = model_selection.train_test_split(x, y, test_size=.20, random_state=42)
pipeline = Pipeline([
('vectorizer',TfidfVectorizer()),
('chi', SelectKBest()),
('classifier', LogisticRegression())])
grid = {
'vectorizer__ngram_range': [(1, 1), (1, 2),(1, 3)],
'vectorizer__stop_words': [None, 'english'],
'vectorizer__norm': ('l1', 'l2'),
'vectorizer__use_idf':(True, False),
'vectorizer__analyzer':('word', 'char', 'char_wb'),
'classifier__penalty': ['l1', 'l2'],
'classifier__C': [1.0, 0.8],
'classifier__class_weight': [None, 'balanced'],
'classifier__n_jobs': [-1],
'classifier__fit_intercept':(True, False),
}
grid_search = GridSearchCV(pipeline, param_grid=grid, scoring='accuracy', n_jobs=-1, cv=10)
grid_search.fit(X_train,Y_train)
Run Code Online (Sandbox Code Playgroud)
当我获得最高分和婴儿车时使用
print(grid_search.best_score_)
print(grid_search.best_params_)
Run Code Online (Sandbox Code Playgroud)
结果是
0.7165160230073953
{'classifier__C': 1.0, 'classifier__class_weight': None, 'classifier__fit_intercept': True, …Run Code Online (Sandbox Code Playgroud)