You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用train_test_split()划分数据集:前80%训练后20%测试

手动划分训练集与测试集(前80%+最后20%)

嗨,这个场景我太熟啦!train_test_split()默认的随机采样确实没法满足你按固定顺序取最后20%作为测试集的需求,其实咱们手动分割就行,几步就搞定~

方法思路

核心就是先计算出80%数据对应的分割索引,然后直接对数据集做切片操作:

  • 前split_index条数据作为训练集
  • 从split_index到末尾的部分作为测试集

代码示例

情况1:数据集是Pandas DataFrame

如果你的数据是用Pandas加载的表格,代码可以这么写:

import pandas as pd

# 加载你的数据集(示例用csv,你可以换成自己的数据源)
df = pd.read_csv("your_dataset.csv")

# 计算分割点:取总数据量的80%位置
split_index = int(len(df) * 0.8)

# 划分训练集和测试集
train_df = df[:split_index]  # 前80%
test_df = df[split_index:]   # 最后20%

情况2:数据集是Numpy数组

如果你的特征和标签是Numpy数组格式,比如常见的机器学习输入格式:

import numpy as np

# 假设你的特征矩阵是X,标签数组是y
X = np.array([[1,2], [3,4], [5,6], ...])  # 示例数据
y = np.array([0, 1, 0, ...])

split_index = int(len(X) * 0.8)

# 分别划分特征和标签
X_train, X_test = X[:split_index], X[split_index:]
y_train, y_test = y[:split_index], y[split_index:]

小提示

如果你的数据集是时序数据(比如按时间顺序记录的销售、监控数据),这种按顺序划分的方式非常合理,能模拟真实场景中用历史数据预测未来的情况;如果数据本身是无序的,记得确认你要的“最后20%”确实是符合需求的测试样本哦~

内容的提问来源于stack exchange,提问作者hshantanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:56:42