3.1.4.1网格搜索

作者: idatadesign | 来源:发表于2017-12-02 20:19 被阅读37次

由于超参数的空间是无尽的,因此超参数的组合配置只能是“最优”解,没有最优解。通常情况下,我们依靠网格搜索对多种超参数组合的空间进行暴力搜索。每一套超参数组合被代入到学习函数中作为新的模型,并且为了比较新模型之间的性能,每个模型都会采用交叉验证的方法在多组相同的训练和开发数据集下进行评估

使用单线程对文本分类的朴素贝叶斯模型的超参数组合执行网格搜索
from sklearn.datasets import fetch_20newsgroups
import numpy as np

news=fetch_20newsgroups(subset='all')

from sklearn.cross_validation import train_test_split
#对前3000条新闻文本进行数据分割,25%文本用于未来测试
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
from sklearn.pipeline import Pipeline

使用Pipeline简化系统搭建流程,将文本抽取与分类器模型串联起来
clf=Pipeline([('vect',TfidfVectorizer(stop_words='english',analyzer='word')),('svc',SVC())])

# 这里需要试验的2个超参数的个数分别是4、3,svc_gamma的参数共有10^ - 2,10^ - 1···。这样我们一共有12种的参数组合,12个不同参数下的模型。
parameters={'svc_gamma':np.logspace(-2,1,4),'svc_C':np.logspace(-1,1,3)}

from sklearn.grid_search import GridSearchCV
#将12组参数组合以及初始化的Pipeline包括3折交叉验证的要求全部告知GridSearchCV,请大家务必注意refit=True这样一个设定。
gs=GridSearchCV(clf,parameters,verbose=2,refit=True,cv=3)

#执行单线程网格搜索
%time_= gs.fit(X_train, y_train)
gs.best_params_, gs.best_score_

#输出最佳模型在测试集上的准确性
print(X_test,y_test)

代码输出表明:使用单线程的网格搜索技术对朴素贝叶斯模型在文本分类任务中的超参数组合进行调优,共有12组超参数*3折交叉验证=36项独立运行的计算任务。该过程一共进行了3分23秒,寻找到的最佳的超参数组合在测试集上所能达成的最高分类准确性为82.27%

相关文章

  • 3.1.4.1网格搜索

    由于超参数的空间是无尽的,因此超参数的组合配置只能是“最优”解,没有最优解。通常情况下,我们依靠网格搜索对多种超参...

  • 8. 模型的选择与调优

    交叉验证 网格搜索 交叉验证:为了让备评估的模型更加确信准确 *超参数搜索-网格搜索: 网格搜索:通常情况下,有很...

  • GridSearch

    不同搜索空间的比较图: 空间搜索 螺旋搜索 线性搜索 网格搜索 可以看到,在超参的搜索过程汇总,网格搜索和螺旋搜索...

  • 网格搜索

    Grid Search sklearn专门进行网格搜索的方法

  • 网格搜索

    https://www.jianshu.com/p/55b9f2ea283b

  • Python sklearn 模型参数调优

    1、网格搜索法-GridSearchCV 2、随机搜索法-RandomizedSearchCV

  • 机器学习day5

    超参数调优 超参数对模型至关重要。 网格搜索 网格搜索应该是最简单的超参数搜索算法。采用较大的搜索范围和较小的步长...

  • scikit-learn 中的超参数优化(网格搜索)

    网格遍历搜索 超参数调优,最基本的就是网格搜索的方法。最常用的是网格遍历的方法,其遍历给定的参数组合,来比较模型在...

  • 4.6 网格搜索与k近邻算法中更多的超参数

    4.6网格搜索与k近邻算法中更多的超参数 关于网格搜索,sklearn为我们提供了一个方法,叫Grid Searc...

  • 超参数网格搜索

    在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参...

网友评论

    本文标题:3.1.4.1网格搜索

    本文链接:https://www.haomeiwen.com/subject/ilqobxtx.html