Keras模型进行交叉验证

交叉验证

交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。

Keras模型交叉验证

本次案例数据集采用鸢尾花的分类数据集
导入模块

from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import KFold
from keras.utils.np_utils import to_categorical
import keras

导入数据

iris = load_iris()
seed = 7
X = iris.data
Y = iris.target

观察数据
在这里插入图片描述
我们需要将标签进行独热编码

Y_encode = to_categorical(Y)

在这里插入图片描述
构建深度学习网络模型

def build_model():
    model = keras.models.Sequential()
    model.add(keras.layers.Dense(7,activation='tanh',input_shape=(4,)))
    model.add(keras.layers.Dense(3,activation="softmax"))
    model.compile(loss="categorical_crossentropy",optimizer='sgd',metrics=['accuracy'])
    return model

交叉验证

model = KerasClassifier(build_fn=build_model, epochs=20, batch_size=1)
kfold = KFold(n_splits=10,shuffle=True,random_state=seed)
result = cross_val_score(model,X,Y_encode,cv=kfold)

n_splits=10代表进行十次交叉验证
查看交叉验证结果

print("============")
print("mean:",result.mean())
print("std:",result.std())

在这里插入图片描述
交叉验证平均accuracy为0.9000000059604645
accuracy标准差为0.0906764646534975

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值