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

机器学习学习笔记——数据集划分(留出法)编译工具:pycharm学习工具:anaconda——notebook留出法直接将数据集DDD划分为两个互斥的部分,其中一部分作为训练集SSS,另一部分用作测试集TTT

编译工具: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)

今天的文章机器学习学习笔记——数据集划分(留出法)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/65236.html

(0)
编程小号编程小号

相关推荐

发表回复

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