Dropout
Dropout 是一类用于神经网络训练或推理的随机化技术,这类技术已经引起了研究者们的广泛兴趣,并且被广泛地应用于神经
网络正则化、模型压缩等任务。
其实很简单,只需要添加Dropout层
model=keras.models.Sequential()model.add(keras.layers.Dense(150, activation="relu"))model.add(keras.layers.Dropout(0.5))
交叉验证
交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。
其中,K折交叉验证比较常见。K折交叉验证,就是将数据随机、平均分为K份,其中(K-1)份用来建立模型,在剩下的一份数据中进行验证。比如,常见的10折交叉验证,“将数据随机、平均分为10份,其中9份用来建模,另外1份用来验证,这样依次做10次模型和验证,可得到相对稳定的模型。
在使用keras和Kfold中只需要导入如下库
from keras.wrappers.scikit_learn import KerasClassifierfrom sklearn.model_selection import cross_val_scorefrom sklearn.model_selection import KFold