Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优相关的知识,希望对你有一定的参考价值。

Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优

 

在机器学习模型中,需要人工选择的参数称为超参数。比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定。超参数选择不恰当,就会出现欠拟合或者过拟合的问题。而在选择超参数的时候,有两个途径,一个是凭经验微调,另一个就是选择不同大小的参数,带入模型中,挑选表现最好的参数。

GridSearchCV的名字其实可以拆分为两部分,GridSearch和CV,即网格搜索和交叉验证。这两个名字都非常好理解。网格搜索,搜索的是参数,即在指定的参数范围内,按步长依次调整参数,利用调整的参数训练学习器,从所有的参数中找到在验证集上精度最高的参数,这其实是一个训练和比较的过程。

GridSearchCV可以保证在指定的参数范围内找到精度最高的参数,但是这也是网格搜索的缺陷所在,他要求遍历所有可能参数的组合,在面对大数据集和多参数的情况下,非常耗时。

 

  • GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,它能够返回最好的模型参数组合。
  • GridSearchCV用于系统地遍历多种参数组合,通过交叉验证确定最佳效果参数。

 

# 加载需要的包和函数

# Load libraries
import numpy as np
from keras import models
from keras import layers
from keras.wrappers.scikit_learn import KerasClassifier
from sklear

以上是关于Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优的主要内容,如果未能解决你的问题,请参考以下文章

keras构建前馈神经网络(feedforward neural network)进行多分类模型训练学习

keras中使用预训练模型进行图片分类

使用Python,Keras和TensorFlow训练第一个CNN

使用Python,Keras和TensorFlow训练第一个CNN

训练时 Keras 神经网络精度始终为 0

Keras - 分类器未从预训练模型的转移值中学习