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

Python不平衡数据集采样咨询:指定类别样本量采样方案

解决方案:按指定样本量对不平衡数据集采样

针对你的需求(保留Class 0全部2000个样本,Class 1、Class 2各抽取4000个样本),权重随机采样的核心问题是它基于概率分布抽取,无法保证小类别(Class 0)的样本被全部保留。推荐采用分类别单独处理+合并的方案,直接精准控制每个类别的样本量,具体实现如下:

基于Pandas的实现步骤

假设你的数据集是Pandas DataFrame格式,类别列名为class:

  1. 提取Class 0的所有样本:
class0_data = df[df['class'] == 0]
  1. 从Class 1中无放回随机抽取4000个样本(设置random_state保证结果可复现):
class1_sample = df[df['class'] == 1].sample(n=4000, random_state=42)
  1. 同理处理Class 2:
class2_sample = df[df['class'] == 2].sample(n=4000, random_state=42)
  1. 合并所有样本得到最终数据集:
import pandas as pd
sampled_df = pd.concat([class0_data, class1_sample, class2_sample]).reset_index(drop=True)

关键注意事项

  • 如果Class 1/2的样本量不足目标数量(你的场景中10000>4000,无需考虑),可将sample方法的replace参数设为True,启用有放回采样。
  • 固定random_state的值可以让每次采样结果一致,方便后续实验复现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:10:28