AI - MLCC06 - 训练集和测试集 (Training and Test Sets)

原文链接:https://developers.google.com/machine-learning/crash-course/training-and-test-sets

1- 拆分数据

可将单个数据集拆分为一个训练集和一个测试集。

  • 训练集 - 用于训练模型的子集。
  • 测试集 - 用于测试训练后模型的子集。

训练集的规模越大,模型的学习效果越好。
测试集规模越大,对于评估指标的信心越充足,置信区间就越窄。
在创建一个能够很好地泛化到新数据模型的过程中,测试集充当了新数据的代理。

拆分数据的一些注意事项:

  • 两个数据集必须相互独立。
  • 确保先进行随机化,再拆分数据。
  • 如果数据集规模很小,可能需要执行诸如交叉验证之类较为复杂的操作。

确保测试集满足以下两个条件:

  • 规模足够大,可产生具有统计意义的结果。
  • 能代表整个数据集。换言之,挑选的测试集的特征应该与训练集的特征相同。

请勿对测试数据进行训练。
如果评估指标取得了意外的好结果,则可能表明您不小心对测试集进行了训练。例如,高准确率可能表明测试数据泄露到了训练集。

举例说明
假设一个模型要预测某封电子邮件是否是垃圾邮件,它使用主题行、邮件正文和发件人的电子邮件地址作为特征。
按照 80-20 的拆分比例将数据拆分为训练集和测试集。
在训练之后,该模型在训练集和测试集上均达到了 99% 的精确率,原本预计测试集上的精确率会低于此结果。
因此再次查看数据后发现,测试集中的很多样本与训练集中的样本是重复的(由于疏忽,在拆分数据之前,没有将输入数据库中的相同垃圾邮件重复条目清理掉)。
无意中对一些测试数据进行了训练,因此无法再准确衡量该模型泛化到新数据的效果。

2- 关键词

过拟合 (overfitting)
创建的模型与训练数据过于匹配,以致于模型无法根据新数据做出正确的预测。

测试集 (test set)
数据集的子集,用于在模型经由验证集的初步验证之后测试模型。
与训练集和验证集相对。

训练集 (training set)
数据集的子集,用于训练模型。
与验证集和测试集相对。

原文地址:https://www.cnblogs.com/anliven/p/10280028.html

时间: 2024-10-14 03:16:31

AI - MLCC06 - 训练集和测试集 (Training and Test Sets)的相关文章

sklearn获得某个参数的不同取值在训练集和测试集上的表现的曲线刻画

from sklearn.svm import SVC from sklearn.datasets import make_classification import numpy as np X,y = make_classification() def plot_validation_curve(estimator,X,y,param_name="gamma", param_range=np.logspace(-6,-1,5),cv=5,scoring="accuracy&

将数据划分为训练集和测试集;缩放特征区间

导入葡萄酒数据: 1 import numpy as np 2 import pandas as pd 3 4 df_wine = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data", header=None) 5 df_wine.columns = ["class label", "alcohol", 6 "mal

随机切分csv训练集和测试集

使用numpy切分训练集和测试集 觉得有用的话,欢迎一起讨论相互学习~Follow Me 序言 在机器学习的任务中,时常需要将一个完整的数据集切分为训练集和测试集.此处我们使用numpy完成这个任务. iris数据集中有150条数据,我们将120条数据整合为训练集,将30条数据整合为测试集. iris.csv下载 程序 import csv import os import numpy as np '''将iris.csv中的数据分成train_iris和test_iris两个csv文件,其中t

sklearn——train_test_split 随机划分训练集和测试集

sklearn--train_test_split 随机划分训练集和测试集 sklearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html 一般形式: train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取train data和

如何把数据集划分成训练集和测试集

本文内容来自周志阳<机器学习> 问题: 对于一个只包含\(m\)个样例的数据集\(D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_m,y_m)\),如何适当处理,从\(D\)中产生训练集\(S\)和测试集\(T\)? 下面介绍三种常见的做法: 留出法 交叉验证法 自助法 留出法(hold-out) 留出法直接将数据集\(D\)划分为两个互斥的集合,其中一个集合作为训练集\(S\),留下的集合作为测试集\(T\),即\(D=S \cup T, S \cap T=\emptys

python 将数据随机分为训练集和测试集

# -*- coding: utf-8 -*- """ Created on Tue Jun 23 15:24:19 2015 @author: hd """ from sklearn import cross_validation c = [] j=0 filename = r'C:\Users\hd\Desktop\bookmarks\bookmarks.arff' out_train = open(r'C:\Users\hd\Desktop

Python数据预处理—训练集和测试集数据划分

使用sklearn中的函数可以很方便的将数据划分为trainset 和 testset 该函数为sklearn.cross_validation.train_test_split,用法如下: >>> import numpy as np >>> from sklearn.cross_validation import train_test_split >>> X, y = np.arange(10).reshape((5, 2)), range(5)

用于拆分训练集和测试集的函数 train_test_split

文档地址:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html#sklearn.model_selection.train_test_split 原文地址:https://www.cnblogs.com/s1m00n/p/11565913.html

模型训练过程中的训练集、训练开发集、开发集和测试集总结

36.什么时候你应该在不同分布上做训练和测试 当你的猫app已经上传10000张图,你已经人工标记它们有没有猫,同时你有200000张互联网上下载的图,这时你要怎么划分训练开发测试集呢? 当你训练深度学习模型时,可能必须用到那200000张图,那么训练和测试集的分布就不同,这会怎样影响你的工作呢? 当然将210000张图片随机分裂到训练开发测试集是一种方法,但我(吴恩达)不推荐这种方法,记住选择开发测试集的推荐方法是:选择你未来预期会得到的数据来作为开发测试集. 大多数学术文章假设训练开发测试集