numpy模拟交叉验证

使用交叉验证的原因:
(1)样本数量比较少,当划分了训练集和测试集后,用于模型训练的样本就更少了
(2)训练集和测试集的不同划分,会导致不同的模型性能结果

K折验证
K折交叉验证就是将样本数据集划分为大小相同的K个分区,对每个分区i再剩余的k-1个分区上训练模型,然后在分区i上评估模型,最终分数等于K个分数的平均值,使用平均值来消除训练集和测试集的划分影响。

使用Numpy模拟机器学习的交叉验证算法

模拟一个样本数据集

import numpy as np
sample=np.arange(36).reshape(9,4)#创建了9个样本,每个样本4个特征
#使用numpy实现k层划分 假设进行4层划分
k=4
k_sample_count=sample.shape[0]//k
#遍历每层划分的训练集和测试集
for fold in range(k):
    validation_start=k_sample_count*fold
    validation_end=k_sample_count*(fold+1)
    validation_data=sample[validation_start:validation_end]
    #将除算选的验证样本集外,其他的样本重新堆叠成一个数据为训练集
    train_data=np.vstack([sample[:validation_start],sample[validation_end:]])
    print("####第",fold,"折划分结果######")
    print("验证集",validation_data)
    print("训练集",train_data)

结果显

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值