Python 实现训练集与测试集的随机划分

程一诺
程一诺
发布时间:2026-10-11| 1人浏览过
原创

本文介绍如何使用 Python 将数据集按指定比例随机划分为训练集和测试集。通过读取 CSV 文件并跳过表头,利用 random.sample 函数选取测试集数据,剩余部分即为训练集。该方法适用于简单的机器学习数据预处理场景,帮助快速构建模型训练环境。

Python 实现训练集与测试集随机划分

在机器学习项目中,将数据集划分为训练集和测试集是基础且关键的步骤。以下代码展示了如何使用 Python 实现这一过程,包括读取 CSV 数据并按指定比例进行随机划分。

基础示例

首先,通过一个简单的列表示例演示随机划分的原理:

import random
dataSet = [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]
trainDataSet = random.sample(dataSet, 3)

完整实现

对于实际的 CSV 数据集,可以使用以下函数进行更复杂的处理。该函数读取 CSV 文件,跳过表头,并按指定比例随机划分训练集和测试集:

import csv
import random
def getDataSet(proportion):
  """
    :exception
      获取训练集和测试集(将数据按比例随机划分)
    :parameter
      proportion - 测试集/数据集
    :return
      trainDataSet - 训练集
      testDataSet - 测试集
    author
      肖政宇
    modify
      2019年5月10日
  """
  dataSet = open('数据集.csv')
  dataSetReader = csv.reader(dataSet)
  """
    :exception
      将数据保存到数组
  """
  dataSet = []
  next(dataSetReader, 'none') # 跳过表头
  data = next(dataSetReader, 'none')
  while (data != 'none'):
    dataSet.append(data)
    data = next(dataSetReader, 'none')
  """
    :exception
      按照比例随机划分出训练集和测试集
  """
  dataNumber = dataSet.__len__() # 数据集数据条数
  testNumber = int(dataNumber * proportion) # 测试集数据条数
  testDataSet = [] # 测试数据集
  trainDataSet = [] # 训练数据集
 
  testDataSet = random.sample(dataSet, testNumber) # 测试集
  for testData in testDataSet: # 将已经选定的测试集数据从数据集中删除
    dataSet.remove(testData)
  trainDataSet = dataSet # 训练集
 
  return trainDataSet, testDataSet

该函数通过以下步骤实现数据划分:

  1. 打开 CSV 文件并创建读取器。
  2. 跳过表头,将数据逐行读取到列表中。
  3. 计算测试集的数据条数(基于总数据条数和指定比例)。
  4. 使用 random.sample 函数随机选取测试集数据。
  5. 从原始数据集中移除测试集数据,剩余部分即为训练集。
  6. 返回训练集和测试集。

通过以上方法,可以灵活地将数据集划分为训练集和测试集,为后续的模型训练和评估提供基础数据。

以上就是 Python 实现训练集与测试集随机划分的详细内容,更多关于 Python 机器学习数据预处理资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。