通过拆分学习和测试数据来训练和测试集

学习、测试和评估数据您已准备好数据并渴望开始训练分类器?但要小心:当你的分类器完成时,你需要一些测试数据来评估你的分类器。如果您使用用于学习的数据评估分类器,您可能会看到非常好的结果。我们真正想要测试的是对未知数据进行分类的性能。为此,我们需要将数据分成两部分:学习算法用来适应或学习模型的训练集 用于评估模型泛化性能的测试集当您考虑机器学习的正常工作方式时,将学习数据和测试数据分开的想法是有道理的。真正现有的系统对现有数据进行训练,如果有其他新数据(来自客户、传感器或其他来源)进来,经过
摘要由CSDN通过智能技术生成

学习、测试和评估数据

拆分为训练集和测试集

您已准备好数据并渴望开始训练分类器?但要小心:当你的分类器完成时,你需要一些测试数据来评估你的分类器。如果您使用用于学习的数据评估分类器,您可能会看到非常好的结果。我们真正想要测试的是对未知数据进行分类的性能。

为此,我们需要将数据分成两部分:

  1. 学习算法用来适应或学习模型的训练集
  2. 用于评估模型泛化性能的测试集

当您考虑机器学习的正常工作方式时,将学习数据和测试数据分开的想法是有道理的。真正现有的系统对现有数据进行训练,如果有其他新数据(来自客户、传感器或其他来源)进来,经过训练的分类器必须预测或分类这些新数据。我们可以在训练期间使用训练和测试数据集对此进行模拟 - 测试数据是对将在生产期间进入系统的“未来数据”的模拟。

在 Python 机器学习教程的这一章中,我们将学习如何使用普通 Python 进行拆分。

我们还将看到不需要手动执行此操作,因为模块中的train_test_split功能model_selection可以为我们完成。

如果数据集是按标签排序的,我们将不得不在拆分之前对其进行洗牌。

分裂前洗牌

我们将数据集分为学习(又名训练)数据集和测试数据集。最佳实践是将其拆分为学习、测试和评估数据集。

我们将逐步训练我们的模型(分类器),并且每次都需要测试结果。如果我们只有一个测试数据集。测试结果可能会进入模型。因此,我们将在完整的学习阶段使用评估数据集。当我们的分类器完成后,我们将使用测试数据集对其进行检查,它以前从未“见过”!

拆分数据

然而,在我们的教程中,我们只会使用拆分为学习和测试数据集。

拆分示例:虹膜数据集

我们将使用 Iris 数据集演示之前讨论的主题。

Iris数据集的150个数据集进行排序,即前50个数据对应第一个花类(0=Setosa),接下来的50个对应第二个花类(1=Versicolor),其余数据对应最后一个类(2 = 弗吉尼亚)。

如果我们将数据分成 2/3(学习集)和 1/3(测试集)的比例,学习集将包含前两个类的所有花,测试集将包含第三个花的所有花班级。分类器只能学习两个类,第三个类将完全未知。所以我们迫切需要混合数据。

假设所有的样本都是相互独立的,我们希望在分割数据集之前随机打乱数据集,如上图所示。

下面我们手动拆分数据:

import  numpy  as  np 
from  sklearn.datasets  import  load_iris 
iris  =  load_iris ()

查看标签iris.target向我们表明数据已排序。

虹膜目标

输出:

数组([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值