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

如何查看train_test_split划分后训练与测试集的各类样本数量?

查看多分类音频数据集划分后的各类样本数量

你可以通过将独热编码标签转回原始类别,再统计各集合的类别分布来实现需求。以下是适配你现有代码的具体实现:

步骤说明

  1. 还原原始类别标签:利用已初始化的MLB(MultiLabelBinarizer)的inverse_transform方法,把划分后的Y_train、Y_val、Y_test从独热编码格式转回原始类别。
  2. 统计类别样本数:用pandas的统计函数分别计算训练集、验证集、测试集的各类样本数量。
  3. 生成对比表格:合并统计结果,输出你需要的结构化表格。

具体代码

在你现有代码的最后(打印各集合shape之后)添加以下代码:

import pandas as pd

# 将独热编码转回原始类别(单标签场景下取每个结果的第一个元素)
train_labels = [label[0] for label in MLB.inverse_transform(Y_train)]
val_labels = [label[0] for label in MLB.inverse_transform(Y_val)]
test_labels = [label[0] for label in MLB.inverse_transform(Y_test)]

# 统计各集合的类别数量
train_counts = pd.Series(train_labels).value_counts().sort_index()
val_counts = pd.Series(val_labels).value_counts().sort_index()
test_counts = pd.Series(test_labels).value_counts().sort_index()

# 合并成对比表格,缺失类别填充0并转为整数
distribution_df = pd.DataFrame({
    '训练集样本数': train_counts,
    '验证集样本数': val_counts,
    '测试集样本数': test_counts
}).fillna(0).astype(int)

# 输出结果
print(distribution_df)

输出示例

运行后会得到类似如下的结构化表格:

类别训练集样本数验证集样本数测试集样本数
a3035
b20510
c2525
silence4046

补充说明

  • 若未安装pandas,先执行pip install pandas完成安装。
  • sort_index()用于让类别按你定义的classes顺序排列;fillna(0)处理某些类别在某集合中无样本的情况。

内容的提问来源于stack exchange,提问作者A. Gehani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:46:18