超参数搜索
- 前面所提到的模型配置,我们一般统称为模型的超参数,如K近邻算法中的k值、支持向量机中不同的核函数等,多数情况下,超参数等选择是无限的,除了人工预设几种超参数的组合以外,还可以通过启发式的搜索算法对超参数组合进行调优。
- 这种启发式的搜索算法对超参数搜索算法,被称之为网格搜索。(如果人工处理所有可能的超参数组合,通常的办法是,根据超参数的维度,列成相应的表格,比如说k的取值有[2,3,4,5,6,7,8],另一个系数比如λ取值有[0.01,0.03,0.1,0.3]等,这样就可以列出一个二维表格,组合出7*4种可能性的超参数组合,再对每一个格子中具体的超参数组合,通过交叉验证的方式进行模型性能的评估,然后通过验证性能的比较,最终筛选出最佳的超参数数据组合)
- 网格搜索采用交叉验证的方法,来寻找更好的超参数组合的过程非常耗时,由于各个新模型在执行交叉验证的过程中是相互独立的,那么我们可以充分利用多核处理器甚至是分布式的计算资源来从事并行搜索,从而成倍的节省运算时间。
#-*- coding:utf-8 -*-
#1.使用单线程对文本分类的朴素贝叶斯模型的超参数组合执行网格搜索
from sklearn.datasets import fetch_20newsgroups
import numpy as np
news = fetch_2