训练集 验证集_训练、验证、测试集

01

注意事项

1.训练、验证、测试集必须分布相同,比如收集如下几个区域的用户数据,在分割训练、验证、测试集的时候不能将US 、UK 用于训练,India 验证,China 测试,这样的话由于各个地区分布不同,产生的结果也不好。更明智的做法是每个地区的数据单独分割训练、验证、测试集,保证数据同一分布。

fc1ef0191b0003f62417427848ea1c95.png

2.验证集和测试集的大小:在数据量较少的时候,采用7:3 或者是6:2:2 的数据集分割方法。但是在大数据条件下,比如100 万个数据,那么将其中1% 设定为验证集或者测试集,也就是10000 个数据,数据量就已经足够。

f7ffa875d58bd44d024db7927d28eaff.png

3.什么时候改变验证集、测试集和性能度量指标?

1)实际应用的数据分布与验证/测试集分布不同

假设初始验证/ 测试集主要包含的是成年猫的图片。在猫的APP 中,发现用户上传更多的是小猫的图像。因此,验证/ 测试集分布并不能代表实际应用的数据分布。在这种情况下,需要验证/ 测试集以使其更具有代表性。2 )验证集过拟合 因为在训练过程中需要在验证集上重复评估,如果发现验证集性能远远优于测试集性能,则表明已经过拟合到验证集了,这时就需要获得一个新的验证集合。所以不要用测试集做关于算法的任何决定,包括是否回滚到前一周的系统。如果这样做,将会过拟合到测试集,测试集也就不能用来对系统性能进行完全无偏的估计。3 )度量标准衡量的东西不是项目需要优化的 假设在猫应用程序中,度量标准是分类准确率。根据该度量标准,分类器A 性能优于分类器B 。但是测试两种算法的过程中,发现分类器A 偶尔会将小黄图误分为猫图像。即使分类器A 更准确,偶尔错分小黄图会留下比较糟的印象,这意味着分类器A 的性能是不可接受的。这时需要改变评估标准。例如,可以对误分色情图片加重惩罚。

dc78724235286e6f77a3df5e7f6e1e2a.png

02

训练、验证、测试集分割代码实现

训练、测试集的划分:
from sklearn.model_selection import StratifiedShuffleSplitimport numpy as npX = np.array([[1, 2], [3, 4], [1, 2], [3, 4],              [1, 2],[3, 4], [1, 2], [3, 4]]) #训练数据集8*2y = np.array([0, 0, 1, 1,0,0,1,1]) #类别数据集8*1ss=StratifiedShuffleSplit(n_splits=5,test_size=0.3,train_size=0.7,random_state=0) #分成5组,测试比例为0.3,训练比例是0.7for train_index, test_index in ss.split(X, y):   print("TRAIN:", train_index, "TEST:", test_index) #获得索引值   X_train, X_test = X[train_index], X[test_index]    y_train, y_test = y[train_index], y[test_index] 

输出:

85181ce8269755809632b84213c8fff9.png

Reference

深度学习课程 --吴恩达

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值