# 数据集不平衡检测与重采样

检测 CSV 或 JSON 数据集中的类别不平衡，对比重采样策略，并预览平衡后的输出数据集

> 标准页面: https://elysiatools.com/zh/tools/dataset-imbalance-detector-resampler

- **分类:** Data Analysis

- **关键词:** 数据集, 不平衡, 重采样, 机器学习, 分类

## 概述

粘贴 CSV 数据集或上传 CSV/JSON 文件，然后指定分类标签列。工具会统计每个类别的数量，计算不平衡比例，提示更适合使用过采样还是欠采样，并生成平衡数据预览。

使用说明：
- 数据集输入：适合快速粘贴 CSV
- 数据文件：适合上传已有的 CSV 或 JSON
- 标签列：指定要分析的目标类别字段
- 重采样策略：选择 none、oversample 或 undersample
- 导出格式：以 JSON 或 CSV 预览平衡结果
- 预览行数：控制预览表里显示多少行

说明：
- 过采样会复制少数类样本直到接近多数类数量
- 欠采样会裁剪多数类样本到少数类规模
- 报告会同时展示两种策略的对比分布
- 如果后续要做更高级的 ML 处理，这个工具可以帮助判断是否值得再引入 SMOTE

## 输入项

- **数据集输入** (textarea): id,label,score 1,yes,0.9 2,no,0.2
- **数据文件** (file)
- **标签列** (text): label
- **重采样策略** (select)
- **导出格式** (select)
- **预览行数** (number)

## 适用场景

- 在训练分类模型前，需要评估训练集是否存在严重的类别倾斜时。
- 需要快速对比过采样和欠采样策略对当前数据集规模的影响时。
- 希望在引入 SMOTE 等复杂算法前，先用基础重采样方法建立基线模型时。

## 工作原理

- 粘贴 CSV 文本或上传本地的 CSV/JSON 数据集文件。
- 指定用于分类的「标签列」名称，工具将自动统计各类别样本数量并计算不平衡比例。
- 选择重采样策略（过采样或欠采样），系统会复制少数类或裁剪多数类以平衡数据。
- 设置预览行数和导出格式，实时查看并获取平衡后的数据集预览。

## 使用案例

- 金融风控场景下，处理正常交易极多而欺诈交易极少的信用卡数据集。
- 医疗诊断分析中，平衡患病与未患病患者的样本数据，防止模型产生偏见。
- 客户流失预测中，对流失用户（少数类）进行过采样，以提高流失预警的准确率。

## 常见问题

### 什么是过采样（Oversample）和欠采样（Undersample）？

过采样是通过随机复制少数类样本使其数量与多数类一致；欠采样则是随机裁剪多数类样本，使其数量降至与少数类相同。

### 工具支持哪些格式的数据集输入？

支持直接粘贴 CSV 格式的文本，或者上传本地的 CSV 和 JSON 数据文件。

### 为什么需要处理数据集不平衡？

如果数据集中某类样本过多，机器学习模型可能会倾向于预测多数类，导致对少数类（如欺诈检测中的异常交易）的识别能力极差。

### 导出的平衡数据集可以直接用于训练吗？

可以。您可以通过选择 CSV 或 JSON 格式导出预览数据，用于初步的模型训练和基线测试。

### 预览行数有什么作用？

预览行数用于限制在结果报告中展示的平衡后数据条数，支持设置 3 到 50 行，方便快速检查数据格式是否正确。

## 相关工具

- [时间序列异常检测器](https://elysiatools.com/zh/tools/time-series-anomaly-detector): 上传 CSV 或 JSON 时间序列数据，基于 Z-Score 和 IQR 检测异常点，并输出带图表的报告
- [数据质量画像师](https://elysiatools.com/zh/tools/dataset-quality-profiler): 对 CSV 或 JSON 数据集进行质量画像，识别缺失值、重复行、格式漂移、类型推断和数值异常。
- [Mock Data 命名前缀 / 缩写冲突检测器](https://elysiatools.com/zh/tools/mock-data-naming-conflict-detector): 检测 CSV、JSON 或 schema 中视觉易混淆的字段名和前缀冲突，并给出更清晰的改名建议
- [时间序列预测与季节性分析](https://elysiatools.com/zh/tools/time-series-forecast-seasonality-analyzer): 从 CSV 或 JSON 时间序列数据中预测未来数期，并在一份报告中查看趋势、季节项和残差分解
- [训练/测试集分层切分器](https://elysiatools.com/zh/tools/train-test-split-with-stratification): 读取 CSV/JSON 数据集,按目标列做分层抽样的 train/validation/test 切分(默认 70/15/15,随机种子可复现),或分层 k 折交叉验证;输出每折类别分布报告与偏差条、重复行泄漏检查、SMOTE 过采样预览(仅在训练折上做最近邻插值),并可导出各折 CSV 为 ZIP。
- [JSON 路径可视化器](https://elysiatools.com/zh/tools/json-path-visualizer): 将 JSON 或 JSONL 以可展开树形结构展示，并为每个节点生成可复制的 JSONPath 表达式
- [CSV 转数据库迁移规划器](https://elysiatools.com/zh/tools/csv-to-database-migration-planner): 根据 CSV 数据推断关系型 schema，并为 PostgreSQL、MySQL、SQLite 或 SQL Server 生成建表和 ALTER 迁移计划
- [结构化日志解析器](https://elysiatools.com/zh/tools/structured-log-analyzer): 自动识别常见日志格式，提取核心字段并推断字段类型，支持导出为 JSON、CSV 或 SQL。

## 示例

- [CSV示例](https://elysiatools.com/zh/samples/csv-samples): 各种数据类型、大小和复杂度级别的CSV示例文件
- [Python 示例](https://elysiatools.com/zh/samples/python): Python代码示例和Hello World演示
- [分布式追踪示例](https://elysiatools.com/zh/samples/distributed-tracing-samples): 使用 Jaeger、OpenTelemetry 和其他现代可观测性工具的综合分布式追踪示例，适用于微服务架构
- [JWT 示例](https://elysiatools.com/zh/samples/jwt-samples): 从基础令牌结构到高级安全实现的全面JWT示例
