from sklearn.datasets import fetch_20newsgroups
import numpy as np
news = fetch_20newsgroups(subset='all')
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(news.data[:3000], news.target[:3000], test_size=0.25, random_state=33)
from sklearn.svm import SVC
from sklearn.feature_extraction.text import TfidfVectorizer
#导入Pipline
from sklearn.pipeline import Pipeline
clf = Pipeline([('vect', TfidfVectorizer(stop_words='english', analyzer='word')), ('svc', SVC())])
parameters = {'svc__gamma': np.logspace(-2, 1, 4), 'svc__C': np.logspace(-1, 1, 3)}
#从sklearn.grid_search中导入网格搜索模块GridSearchCV
from sklearn.model_selection import GridSearchCV
#将12组参数组合以及初始化的Pipline包括3折交叉验证的要求全部告知GridSearchCV。特别需要注意的是refit=True这样一个设定
gs = GridSearchCV(clf, parameters, verbose=2, refit=True, cv=3)
#执行单线程网络搜索
gs.fit(x_train, y_train)
gs.best_params_, gs.best_score_
print(gs.score(x_test, y_test))
运行结果:
============== RESTART: D:/Python362/a_机器学习及实战/grid_search01.py ==============
Fitting 3 folds for each of 12 candidates, totalling 36 fits
[CV] svc__C=0.1, svc__gamma=0.01 .....................................
[CV] ...................... svc__C=0.1, svc__gamma=0.01, total= 9.8s
[Parallel(n_jobs=1)]: Done 1 out of 1 | elapsed: 14.6s remaining: 0.0s
[CV] svc__C=0.1, svc__gamma=0.01 .....................................
[CV] ...................... svc__C=0.1, svc__gamma=0.01, total= 10.2s
[CV] svc__C=0.1, svc__gamma=0.01 .....................................
[CV] ...................... svc__C=0.1, svc__gamma=0.01, total= 10.3s
[CV] svc__C=0.1, svc__gamma=0.1 ......................................
[CV] ....................... svc__C=0.1, svc__gamma=0.1, total= 10.0s
[CV] svc__C=0.1, svc__gamma=0.1 ......................................
[CV] ....................... svc__C=0.1, svc__gamma=0.1, total= 10.1s
[CV] svc__C=0.1, svc__gamma=0.1 ......................................
[CV] ....................... svc__C=0.1, svc__gamma=0.1, total= 10.7s
[CV] svc__C=0.1, svc__gamma=1.0 ......................................
[CV] ....................... svc__C=0.1, svc__gamma=1.0, total= 10.2s
[CV] svc__C=0.1, svc__gamma=1.0 ......................................
[CV] ....................... svc__C=0.1, svc__gamma=1.0, total= 10.4s
[CV] svc__C=0.1, svc__gamma=1.0 ......................................
[CV] ....................... svc__C=0.1, svc__gamma=1.0, total= 10.5s
[CV] svc__C=0.1, svc__gamma=10.0 .....................................
[CV] ...................... svc__C=0.1, svc__gamma=10.0, total= 10.1s
[CV] svc__C=0.1, svc__gamma=10.0 .....................................
[CV] ...................... svc__C=0.1, svc__gamma=10.0, total= 10.4s
[CV] svc__C=0.1, svc__gamma=10.0 .....................................
[CV] ...................... svc__C=0.1, svc__gamma=10.0, total= 10.4s
[CV] svc__C=1.0, svc__gamma=0.01 .....................................
[CV] ...................... svc__C=1.0, svc__gamma=0.01, total= 9.8s
[CV] svc__C=1.0, svc__gamma=0.01 .....................................
[CV] ...................... svc__C=1.0, svc__gamma=0.01, total= 9.9s
[CV] svc__C=1.0, svc__gamma=0.01 .....................................
[CV] ...................... svc__C=1.0, svc__gamma=0.01, total= 9.8s
[CV] svc__C=1.0, svc__gamma=0.1 ......................................
[CV] ....................... svc__C=1.0, svc__gamma=0.1, total= 9.5s
[CV] svc__C=1.0, svc__gamma=0.1 ......................................
[CV] ....................... svc__C=1.0, svc__gamma=0.1, total= 9.6s
[CV] svc__C=1.0, svc__gamma=0.1 ......................................
[CV] ....................... svc__C=1.0, svc__gamma=0.1, total= 10.0s
[CV] svc__C=1.0, svc__gamma=1.0 ......................................
[CV] ....................... svc__C=1.0, svc__gamma=1.0, total= 10.0s
[CV] svc__C=1.0, svc__gamma=1.0 ......................................
[CV] ....................... svc__C=1.0, svc__gamma=1.0, total= 10.0s
[CV] svc__C=1.0, svc__gamma=1.0 ......................................
[CV] ....................... svc__C=1.0, svc__gamma=1.0, total= 10.2s
[CV] svc__C=1.0, svc__gamma=10.0 .....................................
[CV] ...................... svc__C=1.0, svc__gamma=10.0, total= 10.1s
[CV] svc__C=1.0, svc__gamma=10.0 .....................................
[CV] ...................... svc__C=1.0, svc__gamma=10.0, total= 10.2s
[CV] svc__C=1.0, svc__gamma=10.0 .....................................
[CV] ...................... svc__C=1.0, svc__gamma=10.0, total= 10.5s
[CV] svc__C=10.0, svc__gamma=0.01 ....................................
[CV] ..................... svc__C=10.0, svc__gamma=0.01, total= 10.1s
[CV] svc__C=10.0, svc__gamma=0.01 ....................................
[CV] ..................... svc__C=10.0, svc__gamma=0.01, total= 10.1s
[CV] svc__C=10.0, svc__gamma=0.01 ....................................
[CV] ..................... svc__C=10.0, svc__gamma=0.01, total= 10.3s
[CV] svc__C=10.0, svc__gamma=0.1 .....................................
[CV] ...................... svc__C=10.0, svc__gamma=0.1, total= 10.1s
[CV] svc__C=10.0, svc__gamma=0.1 .....................................
[CV] ...................... svc__C=10.0, svc__gamma=0.1, total= 10.3s
[CV] svc__C=10.0, svc__gamma=0.1 .....................................
[CV] ...................... svc__C=10.0, svc__gamma=0.1, total= 10.7s
[CV] svc__C=10.0, svc__gamma=1.0 .....................................
[CV] ...................... svc__C=10.0, svc__gamma=1.0, total= 10.4s
[CV] svc__C=10.0, svc__gamma=1.0 .....................................
[CV] ...................... svc__C=10.0, svc__gamma=1.0, total= 10.6s
[CV] svc__C=10.0, svc__gamma=1.0 .....................................
[CV] ...................... svc__C=10.0, svc__gamma=1.0, total= 10.7s
[CV] svc__C=10.0, svc__gamma=10.0 ....................................
[CV] ..................... svc__C=10.0, svc__gamma=10.0, total= 10.6s
[CV] svc__C=10.0, svc__gamma=10.0 ....................................
[CV] ..................... svc__C=10.0, svc__gamma=10.0, total= 10.7s
[CV] svc__C=10.0, svc__gamma=10.0 ....................................
[CV] ..................... svc__C=10.0, svc__gamma=10.0, total= 10.7s
[Parallel(n_jobs=1)]: Done 36 out of 36 | elapsed: 9.1min finished
0.822666666667