kfold交叉验证k越大_内部交叉验证

kfold交叉验证k越大_内部交叉验证交叉验证的原理放在后面,先看函数。设X是一个9*3的矩阵,即9个样本,3个特征,y是一个9维列向量,即9个标签。现在我要进行3折交叉验证。执行kFold=KFold(n_splits=3):其中KFold是一个类,n_split=3表示,当执行KFold的split函数后,数据集被分成三份,两份训练集和一份验证集。执行index=kFold.split(X=X):index是一个生成器…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

交叉验证的原理放在后面,先看函数。

设X是一个9*3的矩阵,即9个样本,3个特征,y是一个9维列向量,即9个标签。现在我要进行3折交叉验证。

执行kFold = KFold(n_splits=3) :其中KFold是一个类,n_split=3表示,当执行KFold的split函数后,数据集被分成三份,两份训练集和一份验证集。

执行index  = kFold.split(X=X):index是一个生成器,每个元素是一个元组,元组里面有两个元素,第一个是训练集的索引,第二个是验证集的索引。因为这里将9个样本分成三份,所以index中有三个这样的元组

之后便可以迭代index来获得训练集和验证集的索引,从而获得训练集和测试集了

下面是代码示例

1 importnumpy as np2 from sklearn.model_selection importKFold3

4 a = np.arange(27).reshape(9, 3)5 print(a)6 b = np.arange(9).reshape(9, 1)7 kfold = KFold(n_splits=3, shuffle=True)8 index = kfold.split(X=a)9 print(list(index))10 print(type(index))11 index = kfold.split(X=a, y=b)12 for train_index, test_index inindex:13 print(“————————————————-“)14 print(a[train_index]) #注意如果a是datafram类型就得用a.iloc[tain_index], 因为a[train_index]会被认为是访问列15 print(a[test_index])

运行结果如下:

[[ 0 1 2]

[ 3 4 5]

[ 6 7 8]

[ 9 10 11]

[12 13 14]

[15 16 17]

[18 19 20]

[21 22 23]

[24 25 26]]

[(array([0, 1, 3, 4, 5, 6]), array([2, 7, 8])), (array([1, 2, 3, 4, 7, 8]), array([0, 5, 6])), (array([0, 2, 5, 6, 7, 8]), array([1, 3, 4]))]

————————————————-

[[ 6 7 8]

[ 9 10 11]

[12 13 14]

[18 19 20]

[21 22 23]

[24 25 26]]

[[ 0 1 2]

[ 3 4 5]

[15 16 17]]

————————————————-

[[ 0 1 2]

[ 3 4 5]

[ 9 10 11]

[15 16 17]

[21 22 23]

[24 25 26]]

[[ 6 7 8]

[12 13 14]

[18 19 20]]

————————————————-

[[ 0 1 2]

[ 3 4 5]

[ 6 7 8]

[12 13 14]

[15 16 17]

[18 19 20]]

[[ 9 10 11]

[21 22 23]

[24 25 26]]

Process finished with exit code 0

原理补充:

在机器学习建模过程中,通行的做法通常是将数据分为训练集和测试集。测试集是与训练独立的数据,完全不参与训练,用于最终模型的评估。在训练过程中,经常会出现过拟合的问题,就是模型可以很好的匹配训练数据,却不能很好在预测训练集外的数据。如果此时就使用测试数据来调整模型参数,就相当于在训练时已知部分测试数据的信息,会影响最终评估结果的准确性。通常的做法是在训练数据再中分出一部分做为验证(Validation)数据,用来评估模型的训练效果。

验证数据取自训练数据,但不参与训练,这样可以相对客观的评估模型对于训练集之外数据的匹配程度。模型在验证数据中的评估常用的是交叉验证,又称循环验证。它将原始数据分成K组(K-Fold),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型。这K个模型分别在验证集中评估结果,最后的误差MSE(Mean Squared Error)加和平均就得到交叉验证误差。交叉验证有效利用了有限的数据,并且评估结果能够尽可能接近模型在测试集上的表现,可以做为模型优化的指标使用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191366.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月2日 下午5:22
下一篇 2026年2月2日 下午6:01


相关推荐

  • 遍历hashMap的5种方法

    遍历hashMap的5种方法1 使用 Iterator 遍历 HashMapEntry 使用 Iterator 遍历 HashMapKeySe 使用 For each 循环迭代 HashMap4 使用 Lambda 表达式遍历 HashMap5 使用 StreamAPI 遍历 HashMap1 使用 Iterator 遍历 HashMapEntry java tutorials iterations importjava util HashMap import

    2026年3月18日
    2
  • 优化算法——粒子群算法(PSO)

    优化算法——粒子群算法(PSO)一、粒子群算法的概述二、粒子群算法的流程

    2022年6月10日
    30
  • 即梦ai如何查看历史记录 即梦ai操作日志查询教程

    即梦ai如何查看历史记录 即梦ai操作日志查询教程

    2026年3月12日
    3
  • 决策树算法原理及案例「建议收藏」

    决策树算法原理及案例「建议收藏」机器学习在各个领域都有广泛的应用,特别在数据分析领域有着深远的影响。决策树是机器学习中最基础且应用最广泛的算法模型。本文介绍了机器学习的相关概念、常见的算法分类和决策树模型及应用。通过一个决策树案例,着重从特征选择、剪枝等方面描述决策树的构建,讨论并研究决策树模型评估准则。最后基于R语言和SPSSModeler这两个工具,分别设计与实现了决策树模型的应用实例。1.机器学习概念

    2022年4月18日
    72
  • Dbcp连接池

    Dbcp连接池

    2021年10月3日
    44
  • python url转码_深入浅出URL转码

    python url转码_深入浅出URL转码一 问题 编码问题是 JAVA 初学者在 web 开发过程中经常会遇到问题 网上也有大量相关的文章介绍 但其中很多文章并没有对 URL 中使用了中文等非 ASCII 的字符造成服务器后台程序解析出现乱码的问题作出准确的解释和说明 本文将详细介绍由于在 URL 中使用了中文等非 ASCII 的字符造成乱码的问题 1 在 URL 中中文字符通常出现在以下两个地方 1 QueryString 中的参数值 比如 http s

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号