【机器学习实战】网格搜索--贝叶斯新闻文本分类器调优

16 篇文章 6 订阅
10 篇文章 0 订阅
#对文本分类的朴素贝叶斯模型的超参数组合进行网格搜索
#从sklearn.datasets中导入20类新闻文本抓取器
from sklearn.datasets import fetch_20newsgroups
import numpy as np

#抓取新闻数据
news=fetch_20newsgroups(subset='all')

#数据集分割
from sklearn.cross_validation 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)
#SVM
from sklearn.svm import SVC
#导入TfidVectorizer文本抽取器
from sklearn.feature_extraction.text import TfidfVectorizer

#导入Pipeline
from sklearn.pipeline import Pipeline
#使用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)}
#网格搜索模型GridSearchCV
from sklearn.model_selection import GridSearchCV

#初始化单线程网格搜索
gs=GridSearchCV(clf,parameters,verbose=2,refit=True,cv=3)

#初始化配置并行网格搜索,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(gs.score(X_test,y_test))
#0.822666666667

单线程
这里写图片描述

多线程,并行
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值