3.1.4.2并行搜索

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

尽管采用网格搜索结合交叉验证的方法,来寻找更好超参数组合的过程非常耗时;然而,一旦获取比较好的超参数组合,则可以保持一段时间使用。因此这是值得推荐并且相对一劳永逸的性能提升方法。更可喜的是,由于各个新模型在执行交叉验证的过程中间是互相独立的,所以我们可以充分利用多核处理器甚至是分布式的计算资源来从事并行搜索,这样能够成倍地节省运算时间。

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

#使用新闻抓取器从互联网上下载所有数据,并且存储在变量news中
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
#初始化配置并行网格搜索,n_jobs=-1代表使用该计算机全部的CPU
gs=GridSearchCV(clf,parameters,verbose=2,refit=True,cv=3,n_jobs=-1)

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

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

wall time:51.8s

t同样是网格搜索,使用多线程并行搜索技术对朴素贝叶斯模型在文本分类任务中的超参数组合进行调优,执行同样的36项计算任务一共只花费了51.8秒,寻找到的最佳的超参数组合在测试集上所能达成的最高分类准确性依然为82.27%。我们发现在没有影响验证准确性的前提下,通过并行搜索基础有效地利用了4核心(CPU)的计算资源,几乎4倍地提升了运算速度,节省了最佳超参数组合的搜索时间。

相关文章

  • 3.1.4.2并行搜索

    尽管采用网格搜索结合交叉验证的方法,来寻找更好超参数组合的过程非常耗时;然而,一旦获取比较好的超参数组合,则可以保...

  • (7)分库分表<架构解决方案>

    sharding:提升db并行处理能力,解决搜索瓶颈 cluster:db集群,只是扩展并行处理能力 1.常用中...

  • 并发算法之并行搜索

    对于有序数据,通常可以采用二分查找法,对于无序数据,则只能挨个查找。 给定一个数组,查找需要满足条件的元素。对于串...

  • Tensorflow GPU并行计算(from Tensorfl

    搜索Tensorflow GPU并行计算,网上代码大同小异,但是很多来源于Tensorflow实战书实践,有些使用...

  • 学习大数据

    大数据采集、分布式存储、并行计算;信息检索(搜索/推荐/广告)、数据挖掘(概念/流程/机器学习/算法/模型) 数据...

  • 多GPU-TensorFlow

    首先,TensorFlow并行计算分为:模型并行,数据并行。 模型并行:根据不同模型设计不同并行方式,模型不同计算...

  • 学习笔记TF040:多GPU并行

    TensorFlow并行,模型并行,数据并行。模型并行根据不同模型设计不同并行方式,模型不同计算节点放在不同硬伯上...

  • flink实验结论

    SpamFilter 单节点:并行度111111 多节点:并行度112211 多节点:并行度112222

  • shell并行下载数据

    版本一:无并行 runtime=673s 版本二:并行 runtime=191s 并行下载的速度比无并行快3倍左右。

  • 《Spark快速大数据分析》读书笔记——并行度

    并行度一个RDD针对多个数据分区会并行运行同样的计算。并行度是并行执行的任务数量,而不是切分任务的数量。 并行度推...

网友评论

    本文标题:3.1.4.2并行搜索

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