-
2021-11-24 23:38:46
训练集:用于训练模型的样本集合, 主要用来训练模型参数.
测试集:对于训练完成的模型, 通过测试集惊醒评估
划分方法有3种
1 留出法
将数据集按照比例分(8:2,7:3,…)成互不相交的两部分,其中一个是训练集,一个是测试集,尽量保持训练集和测试集分布一致
2 交叉验证法
将训练集分成k个互斥的子集,k个子集随机分为k-1个一组作为训练集,剩下一个为另一组作为测试集,有k种分法。
3 自助法
每次随机从数据集(有m个样本)抽取一个样本,然后再放回(也就是说可能被重复抽出),m次后得到有m个样本的数据集,将其作为训练集。始终不被抽取到的样本的比例约为0.368,这部分作为测试集。
迎关注微信公众号(算法工程师面试那些事儿),建号初期,期待和大家一起刷leecode,刷机器学习、深度学习面试题等,共勉~
更多相关内容 -
python 划分数据集为训练集和测试集的方法
2020-09-19 20:54:05今天小编就为大家分享一篇python 划分数据集为训练集和测试集的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
Python 实现训练集、测试集随机划分
2020-12-23 09:57:53以下函数,使用于我最近的一个机器学习的项目,将数据集数据按照比例随机划分成训练集数据和测试集数据: import csv import random def getDataSet(proportion): """ :exception 获取训练集和测试集(将数据按... -
用pandas划分数据集实现训练集和测试集
2020-12-17 08:28:03划分方法:随机划分 # 导入pandas模块,sklearn中model_select模块 import pandas as pd from sklearn.model_select import train_test_split # 读取数据 data = pd.read_csv('.../titanic_dataset/train.csv') # ... -
python中如何实现将数据分成训练集与测试集的方法
2021-01-21 18:33:32接下来,直接给出大家响应的代码,并对每一行进行标注,希望能够帮到大家。 需要用到的是库是。numpy 、sklearn。 #导入相应的库(对数据库进行切分需要用到的库是sklearn.model_selection 中的 train_test_split)... -
数据集的划分以及训练集、验证集和测试集的具体含义.html
2022-02-26 11:15:39数据集的划分以及训练集、验证集和测试集的具体含义.html -
随机森林-自定义划分训练集与测试集.zip
2020-06-05 17:13:35在网上没有找到根据需求自定义划分训练集和测试集的方法,于是自己琢磨了一下,完全可以运行,并可以得到预测的准确率~~ -
python机器学习:如何划分训练集和测试集
2020-11-26 11:41:10今天用一个实例给大家写写在机器学习中如何进行训练集和测试集的划分。实例操练首先导入今天要使用的数据集import pandas as pddf = pd.read_csv("carprices.csv")df.head()这是一个汽车销售的数据集,里面的变量...今天用一个实例给大家写写在机器学习中如何进行训练集和测试集的划分。
实例操练
首先导入今天要使用的数据集
import pandas as pddf = pd.read_csv("carprices.csv")df.head()
这是一个汽车销售的数据集,里面的变量包括汽车里程、使用年限、销售价格。我们今天要做的就是用汽车里程、使用年限来建立一个预测销售价格的机器学习模型。
首先,我们画图看一看数据关系
import matplotlib.pyplot as pltplt.scatter(df['Mileage'],df['Sell Price($)'])plt.scatter(df['Age(yrs)'],df['Sell Price($)'])
运行以上代码可以出2个点图,分别展示汽车里程和销售价格的关系和使用年限和销售价格的关系。
使用年限和销售价格的关系散点图
汽车里程和销售价格的关系散点图
通过两个散点图,我们可以发现使用线性回归模型进行建模还是比较好的方法,现在我们就要进行训练集和测试集的划分了
训练集 用来训练模型,估计参数
测试集 用来测试和评估训练出来的模型好坏,不能用于训练模型
划分数据集实操
首先我们要指定数据和数据标签
X = df[['Mileage','Age(yrs)']]y = df['Sell Price($)']
在本例中,数据集为汽车里程和使用年限构成的数据框,标签为汽车价格。
然后我们用train_test_split方法分割数据为训练集和测试集,代码如下
from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)
讲解一下train_test_split的参数:
train_test_split的基本形式如下
X_train,X_test, y_train, y_test =sklearn.model_selection.train_test_split(train_data,train_target,test_size=0.4, random_state=0,stratify=y_train)
其中
train_data:所要划分的样本特征集
train_target:所要划分的样本结果
test_size:样本占比,如果是整数的话就是样本的数量
random_state:是随机数的种子,在需要重复试验的时候,保证得到一组一样的随机数
stratify是为了保持split前类的分布,通常在类分布不平衡的情况下会用到stratify
在我们的例子中,我们只给出了test_size=0.3,所以我们按照7:3划分得到了训练集和测试集,而且这个划分是随机的。我们可以看一看训练数据长啥样
X_trainy_train
以上代码可以分别输出训练集的数据和标签。
建立线性回归模型
from sklearn.linear_model import LinearRegressionclf = LinearRegression()clf.fit(X_train, y_train)
通过以上代码我们便建立了回归模型,运用此模型我们可以进行对X_test的预测
clf.predict(X_test)
然后,我们将模型预测值和实际的y_test值进行对比可以得到模型正确率。
clf.score(X_test, y_test)
可以看到,我们训练的线性回归模型的正确率达到90%多。
-
py-faster-rcnn划分数据集(训练集、验证集、训练验证集、测试集)
2018-12-18 15:35:04将自己的数据集划分为py-faster-rcnn所需的集(训练集、验证集、训练验证集、测试集),读取xml文件生成对应的txt文件。 -
如何划分机器学习的训练集和测试集
2022-05-03 11:24:50使用机器学习算法时,通常需要把数据分为训练集和测试集,本文介绍R语言的三种实现方法,并通过示例进行学习。 使用R内置方法 依据sample函数生成指定概率的true和false的向量,然后利用该向量过滤数据集得到训练集...使用机器学习算法时,通常需要把数据分为训练集和测试集,本文介绍R语言的三种实现方法,并通过示例进行学习。
使用R内置方法
依据sample函数生成指定概率的true和false的向量,然后利用该向量过滤数据集得到训练集和测试集,语法如下:
# 设置随机种子,使得示例可以重复 set.seed(1) # df是要分割的数据集 # 使用 70% 数据集作为训练集,30% 作为测试集 sample <- sample(c(TRUE, FALSE), nrow(df), replace=TRUE, prob=c(0.7,0.3)) train <- df[sample, ] test <- df[!sample, ]
下面示例把iris数据分为训练集和测试集:
# 设置随机种子,使得示例可以重复 set.seed(1) data(iris) # 使用 70% 数据集作为训练集,30% 作为测试集 sample <- sample(c(TRUE, FALSE), nrow(iris), replace=TRUE, prob=c(0.7,0.3)) train <- iris[sample, ] test <- iris[!sample, ] dim(iris) # 150 5 dim(train) # 106 5 dim(test) # 44 5
从输出可以看到,总共150条记录,训练集大概包括 106 / 150 = 70.6% 。
使用caTools包
使用caTools包提供了sample.split函数,可以轻松进行数据分离。
subset函数返回满足条件的向量、矩阵或数据帧的子集,subset(x, subset, ...)
其中subset参数指定过滤条件:library(caTools) # 设置随机种子,使得示例可以重复 set.seed(1) # df是要分割的数据集 # 使用 70% 数据集作为训练集,30% 作为测试集 sample <- sample.split(df$any_column, SplitRatio = 0.7) train <- subset(df, sample == TRUE) test <- subset(df, sample == FALSE)
我们用这种方法对iris数据集进行划分:
# 设置随机种子,使得示例可以重复 data(iris) set.seed(2) # df是要分割的数据集 # 使用 70% 数据集作为训练集,30% 作为测试集 sample <- sample.split(iris$Species, SplitRatio = 0.7) train <- subset(iris, sample == TRUE) test <- subset(iris, sample == FALSE) dim(iris) # 150 5 dim(train) # 105 5 dim(test) # 45 5
运行结果与上面示例差不多,需要说明的是sample.split函数,其语法如下:
sample.split( Y, SplitRatio = 2/3, group = NULL )
其中Y为x向量类型,因此需要随意指定数据集的一列生成向量,SplitRatio有默认值。
使用dplyr包
下面我们来看看如何使用dplyr包实现同样功能。
library(dplyr) # 设置随机种子,使得示例可以重复 set.seed(1) df <- iris # 依据数据集总行数生成序号 df$id <- 1:nrow(df) # 使用 70% 数据集作为训练集,30% 作为测试集 train <- df %>% dplyr::slice_sample(prop = 0.70) # 反向连接生成测试机 test <- dplyr::anti_join(df, train, by = 'id') dim(iris) # 150 5 dim(train) # 105 5 dim(test) # 45 5
生成结果与上面一致,我们说明下
slice_sample()
函数,用于随机选择行,语法如下:slice_sample(.data, ..., n, prop, weight_by = NULL, replace = FALSE)
- prop 用于指定概率
- n 指定数量
- replace 是否放回抽样,默认不放回
-
随机划分训练集和测试集
2022-05-06 21:25:18在机器学习中训练模型时,经常需要按比例对数据集随机划分成训练集和测试集,本文总结了基于matlab和python的划分训练集和测试集的常用方法,仅供大家参考。 一、无序索引方法 1. matlab代码 % 确定随机种子,便于...文章目录
前言
在机器学习中训练模型时,经常需要按比例对数据集随机划分成训练集和测试集,本文总结了基于matlab和python的划分训练集和测试集的常用方法,仅供大家参考。
一、无序索引方法
1. matlab代码
% 确定随机种子,便于结果复现 rand('seed', 42); % 生成和样本个数等长的无序索引序列 idx = randperm(length); % length即为样本的总数,idx为生成的无序索引 % 选取80%作为训练集 train_data = data(idx(1:0.8*length), :); % data为样本特征,格式为:样本数*特征数 train_labels = labels(idx(1:0.8*length), 1); % labels为样本标签,的格式为:样本数*1 % 剩余20%作为测试集 test_data = data( idx(0.8*length+1:end), :); test_labels = labels( idx(0.8*length+1:end), 1);
2. python代码
length = data.shape[1] # length = len(labels) # 生成和样本个数等长的无序索引序列 index = randperm(length) # length即为样本的总数,idx为生成的无序索引 # 选取80%作为训练集(假设样本共100个) idx1 = index[:80] train_data = data[idx1] # data为样本特征,格式为:样本数*特征数 train_labels = labels[idx1] # labels为样本标签,的格式为:样本数*1 # 剩余20%作为测试集 idx2 = index[80:] test_data = data[idx2] test_labels = labels[idx2]
二、函数实现方法
1. 利用python库中的cross_validation.train_test_split方法
from numpy import random import numpy as np from sklearn import cross_validation # 其中data为数据的特征矩阵,labels为标签,test_siz为测试的比例 x_train, x_test, y_train, y_test = cross_validation.train_test_split(data, labels, test_size=0.2, random_state=0)
2. 利用python库中的KFold方法(K折交叉验证方法)
from sklearn.model_selection import KFold from sklearn import svm # 其中data为数据的特征矩阵,labels为标签,train_index, test_index分别为训练集和测试集的样本索引 kf = KFold(n_splits=5) for train_index, test_index in kf.split(data): x_train, x_test = data[train_index], data[test_index] y_train, y_test = labels[train_index], labels[test_index] clf = svm.SVC(C=0.2, kernel='linear', decision_function_shape='ovo') clf.fit(x_train, y_train) pred_acc = clf.score(x_test, y_test)
-
python 自动划分训练集和测试集
2021-02-25 10:40:53自动划分训练集和测试集前言代码总结 前言 在进行深度学习的模型训练时,我们通常需要将数据进行划分,划分成训练集和测试集,若数据集太大,数据划分花费的时间太多!!! 不多说,上代码(python代码) 代码 # *_*... -
Python划分训练集和测试集小脚本
2022-04-03 10:21:51将数据集划分为训练集,测试集 """ import os import random import shutil import math # 创建保存图像的文件夹 def makedir(new_dir): if not os.path.exists(new_dir): os.makedirs(new_dir) random.seed... -
随机划分训练集和测试集python代码
2022-02-12 21:38:03本程序是随机划分训练集和测试集的 """ import os import random import shutil def howmuch(path): sum =0 for i in os.listdir(path): sum+=1 return sum def move(src,dst,number): #随机生成要移动的... -
Matlab随机划分训练集和测试集
2020-12-30 09:15:22%导入数据集clear;clc;load wine_SVM; %数据集为wine,数据集标签为wine_labelsData = wine; %对数据集实例化num_... %设置测试集样本数为78,训练集样本为100[ndata, D] = size(Data); %ndata表示数据集样本数,D... -
数据集划分为训练集和测试集并生成标签--matlab代码
2021-01-27 07:55:57最近做图像分类,数据集的整理真的好费时间,找到一个代码,非常好使,推荐给大家。实现的功能是,将一个文件夹下的每个子文件夹的...想了很多方法,但最后发现其实自己整理的数据,最合理的分配训练集和测试集的方... -
第四章 Python数据预处理之划分训练集与测试集
2022-02-26 11:31:58本节主要介绍了训练集和测试集的划分、交叉验证的各种方法以及代码实现。 -
matlab中划分训练集和测试集
2020-03-13 15:00:06文章目录导入文件划分数据集和测试集归一化处理 导入文件 划分数据集和测试集 train= [wine1(1:41,:);wine1(60:109,:);wine1(131:164,:)]; train_label= [wine1label(1:41);wine1label(60:109);wine1label... -
python划分训练集、验证集和测试集
2022-02-21 15:39:04# 将图片和标注数据按比例切分为 训练集和测试集、验证集 import shutil import random import os # 原始路径 image_original_path = 'a/images/' label_original_path = 'a/annotations/' # 训练集路径 train_... -
pytorch 加载自制图像数据集并划分训练集和测试集:
2021-06-23 09:28:38一、pytorch 加载自制图像数据集并划分训练集和测试集步骤: 1、对数据集进行文件夹组织处理以适应ImageFolder的要求,其格式为: datasrc/dog/xxx.png datasrc/dog/xxy.png datasrc/dog/xzz.png datasrc/cat... -
复旦大学中文文本分类训练集和测试集.zip
2020-01-11 11:22:35复旦大学中文文本分类训练集和测试集 文件太大压缩为了zip格式。 all文件夹为复旦大学中文文本分类语料集, ...下载以后可以按照自己的要求指定比例划分训练集和测试集,也可以按照本文档的划分方法。 -
python数据预处理:补充缺失数据,划分训练集和测试集
2022-04-26 21:20:40> 步骤回顾 > 1. pandas导入数据 > 2. 自变量和因变量分离 > 3. 缺失值处理 > 4. 字符串变成数字 > 5. 划分训练集和测试集 > 6. 特征缩放 -
Pytorch极简入门教程(七)—— 划分训练集和测试集
2020-12-07 14:13:31# -*- coding: utf-8 -*- from torch.utils.data import TensorDataset from torch.utils.data import DataLoader import torch import pandas as pd import numpy as np import matplotlib.pyplot as plt ... -
机器学习库sklearn之怎么划分训练集和测试集
2018-09-16 15:24:05训练建模 -> 模型评估 -> 预测,分类。最开始的是获取数据,sklearn已经给出很多的数据集, 当然也可以通过sklearn自己创建。 Sklearn里给出的数据集如下: 这里具体怎么调用和创建可以参考... -
训练集和测试集的划分方法
2019-03-07 21:07:57答案是对D进行适当的处理,从中产生出训练集S和测试集T,下面介绍几种常见的方法。(内容来自西瓜书) 1.流出法 留出法(hold-out)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试... -
训练集和测试集的划分
2021-05-28 22:05:55得到将样本按比例划分维训练集和测试集。 dsets["source"] = ImageList(open(data_config["source"]["list_path"]).readlines(), \ transform=prep_dict["source"]) n_train = len(dsets["source"]) split = n_...