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

    xiaoxiao2021-03-25  108

    #对文本分类的朴素贝叶斯模型的超参数组合进行网格搜索 #从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

    单线程

    多线程,并行

    转载请注明原文地址: https://ju.6miu.com/read-33594.html

    最新回复(0)