机器学习学习笔记——数据集划分(留出法)

2023-11-17

编译工具:pycharm

学习工具:Anaconda——notebook

在机器学习算法中,我们通常将原始数据集划分为三个部分(划分要尽可能保持数据分布的一致性):

(1)Training set(训练集): 训练模型

(2)Validation set(验证集): 选择模型

(3)Testing set(测试集): 评估模型

其中Validation set的作用是用来避免过拟合的。在训练过程中,我们通常用它来确定一些超参数(例:根据Validation set的accuracy来确定early stoping的epoch大小,根据Validation set确定learning rate等等)。之所以不用Testing set,是因为随着训练的进行,网络会慢慢过拟合测试集,导致最后的Testing set没有参考意义。因此Training set用来计算梯度更新权重,即训练模型,Validation set用来做模型选择,Testing set则给出一个accuracy以判断网络性能的好坏。

数据集的划分通常有三种方法:

这里介绍留出法。

留出法直接将数据集D DD划分为两个互斥的部分,其中一部分作为训练集S SS,另一部分用作测试集T TT。通常训练集和测试集的比例为70%:30%。

1.随机产生数据集:

import numpy as np
#随机产生我们的数据集
x=np.random.randint(-10,10,10)
y=(x>0).astype(int)
print(y)

结果:

 2.打乱下标顺序:

shuffle_indexs=np.random.permutation(len(x))
print(shuffle_indexs)

结果:

3. 留下训练数据:

#留几成当作测试数据集
test_radio=0.3
#求出test的个数
test_size=int(len(x)*test_radio)
#比如说我现在0-test_size当作test的数据,test_size-最后当成train数据
test_indexs=shuffle_indexs[:test_size]
train_indexs=shuffle_indexs[test_size:]
print(len(train_indexs))

结果:

4.使用fance indexing进行取值:

train_x = x[train_indexs]
train_y=y[train_indexs]

test_x=x[test_indexs]
test_y=y[test_indexs]
print(test_x.shape)

结果:

全部代码: 

import numpy as np
#随机产生我们的数据集
x=np.random.randint(-10,10,10)
y=(x>0).astype(int)
print(y)
#打乱下标顺序
shuffle_indexs=np.random.permutation(len(x))
print(shuffle_indexs)
#留几成当作测试数据集
test_radio=0.3
#求出test的个数
test_size=int(len(x)*test_radio)
#比如说我现在0-test_size当作test的数据,test_size-最后当成train数据
test_indexs=shuffle_indexs[:test_size]
train_indexs=shuffle_indexs[test_size:]
print(len(train_indexs))
#使用fance indexing进行取值
train_x = x[train_indexs]
train_y=y[train_indexs]

test_x=x[test_indexs]
test_y=y[test_indexs]
print(test_x.shape)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习学习笔记——数据集划分(留出法) 的相关文章

  • 从框架中获取可调用对象

    给定框架对象 由sys getframe http docs python org library sys html sys getframe 例如 我可以获得底层的可调用对象吗 代码解释 def foo frame sys getfram
  • sudo 和 pip 不在同一路径上

    pip and sudo不在我的计算机上的同一路径上 因此当 基本上一直 我需要运行这两个命令时 如下所示 sudo pip install xxx I get sudo pip command not found pip下载软件包 但由于
  • 从 asyncio 子进程获取实时输出

    我正在尝试使用 Python asyncio 子进程来启动交互式 SSH 会话并自动输入密码 实际用例并不重要 但它有助于说明我的问题 这是我的代码 proc await asyncio create subprocess exec ssh
  • setColumnStretch 和 setRowStretch 如何工作

    我有一个使用构建的应用程序PySide2它使用setColumnStretch用于柱拉伸和setRowStretch用于行拉伸 它工作得很好 但我无法理解它是如何工作的 我参考了 qt 文档 但它对我没有帮助 我被困在括号内的两个值上 例如
  • 嵌套函数中的变量作用域

    有人可以解释为什么以下程序失败 def g f for in range 10 f def main x 10 def f print x x x 1 g f if name main main 带有消息 Traceback most re
  • 如何在Python中反转列表的列表? [复制]

    这个问题在这里已经有答案了 我想知道如何反转 python 中的列表列表 例如 原来的 list 1 2 3 4 5 6 7 8 9 输出 new list 7 8 9 4 5 6 1 2 3 现在 我正在尝试这样做 new list re
  • 如何使用 Pycharm 运行 fast-api 服务器?

    我有一个简单的 API 函数 如下所示 from fastapi import FastAPI app FastAPI app get async def read root return Hello World 我正在使用启动服务器uvi
  • 清理 MongoDB 的输入

    我正在为 MongoDB 数据库程序编写 REST 接口 并尝试实现搜索功能 我想公开整个 MongoDB 接口 我确实有两个问题 但它们是相关的 所以我将它们放在一篇文章中 使用 Python json 模块解码不受信任的 JSON 是否
  • 关于具有自定义损失的 3 输出 ANN 的加权

    我正在尝试定义一个自定义损失函数 它在回归模型中接收 3 个输出变量 def custom loss y true y pred y true c K cast y true float32 Shape batch size 3 y pre
  • Plotly:如何设置文本格式(下划线、粗体、斜体)

    使用注释时 我尝试在绘图中为文本添加下划线 我使用添加注释 import plotly graph objects as go g go FigureWidget make subplots rows 1 cols 1 g update l
  • Python:处理图像并保存到文件流

    我需要使用 python 处理图像 应用过滤器和其他转换 然后使用 HTTP 将其提供给用户 现在 我正在使用 BaseHTTPServer 和 PIL 问题是 PIL 无法直接写入文件流 因此我必须写入临时文件 然后读取该文件 以便将其发
  • 如何停止 PythonShell

    如何终止 停止 Node js 中 PythonShell 执行的 Python 脚本的执行 我在交互模式下运行 输出通过 socket io 发送到给定的房间 如果没有更多的客户端连接到这个房间 我想停止 python 脚本的执行 这是我
  • python 硒 按名称查找元素

    查找电子邮件输入的正确代码是什么https accounts google com ServiceLogin html 是
  • 使用 Popen 打开进程并获取 PID

    我正在开发一个漂亮的小功能 def startProcess name path Starts a process in the background and writes a PID file returns integer pid Ch
  • 使用张量流导出神经网络的权重

    我使用张量流工具编写了神经网络 一切正常 现在我想导出神经网络的最终权重以制定单一的预测方法 我怎样才能做到这一点 您需要在训练结束时使用以下命令保存模型tf train Saver https www tensorflow org ver
  • 类型错误:无法连接“str”和“int”对象有人可以帮助新手使用他们的代码吗?

    感谢任何帮助 还有任何重大缺陷或您在格式或基本方面看到的任何重大缺陷 请指出 谢谢 day raw input How many days locations raw input Where to days str day location
  • 如何读取多个文件并将它们合并到一个 pandas 数据框中?

    我想读取位于同一目录中的多个文件 然后将它们合并到一个 pandas 数据框中 如果我这样做的话它会起作用 import pandas as pd df1 pd read csv data 12015 csv df2 pd read csv
  • 数据类和属性装饰器

    我一直在阅读 Python 3 7 的数据类 作为命名元组的替代品 我通常在必须将数据分组到结构中时使用它 我想知道数据类是否与属性装饰器兼容 以便为数据类的数据元素定义 getter 和 setter 函数 如果是这样 是否在某处进行了描
  • 我应该在哪里对对象和字段进行 django 验证?

    我正在创建一个 Django 应用程序 它使用 Django Rest Framework 和普通的 django views 作为用户的入口点 我想对模型的独立字段以及整个对象进行验证 例如 字段 根据正则表达式函数输入的车牌是否正确 与
  • python 中“重载”函数的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在尝试在 python 中做这样的事情 def foo x y do something at position x y def foo pos foo pos x pos y 所以我想根据我提供的参数数量调

随机推荐