【问题标题】:How could I find the number of instances per fold, in my dataset?如何在我的数据集中找到每个折叠的实例数?
【发布时间】:2021-06-20 14:10:42
【问题描述】:

我收到了一个包含数据的 .npz 文件。我探索了数据集,并注意到它有 5 种数据类型:

cell_data = np.load("C:/Users/alexs/Documents/DataMining/cell-data.npz")
cell_data.files

在输出中给出这个:

['images', 'counts', 'folds', 'compressed', 'allow_pickle']

还有图片attached

我被保证数据集本身有 3 折。计数是每行的 Nx6 矩阵 对应于单个图像补丁,每列对应于 6 种细胞类型(称为 T1、T2、...、T6)。折叠似乎是一个 1xN 矩阵,但我不确定,它包含范围为 {0,2} 的值。

我将如何找出每个折叠的实例数,如果可能的话,我将如何找出折叠的范围,即哪些实例属于哪些折叠(或将实例分组到它们自己的单独数组中表示每个折叠,如 fold1 = x、fold2 = x_2 等)然后为每个折叠绘制直方图,以便分别绘制每种细胞类型的计数(总共 6 个图)?

【问题讨论】:

  • 请不要用不相关的东西(介绍、感谢、道歉等 - 已删除)来混淆您的问题。
  • 我猜折叠包含与图像数量匹配的 N 个条目?如果是这种情况,为什么不将它们映射在一起?
  • @jhso 是的,有 2351 张图片,所以只是这些图片如何分成 3 折的问题?老实说,我不确定我会怎么做,我对编程很陌生

标签: python machine-learning dataset histogram


【解决方案1】:

好的,由于您是编程新手,我将解释索引的工作原理(在 numpy 中,它是 python 中几乎通用的数学库)。

假设我们有一个变量folds,它被定义为:

import numpy as np
folds = np.array([1,1,2,2,1,2,1,0,0,0,1,2,1,2,0,0,2,1])

我们可以通过执行列表推导轻松计算每个折叠的出现次数:

num_folds = 3
fold_counts = [np.sum(folds==I) for I in range(num_folds)]
#will return [5, 7, 6]

当我们将折叠中的每个元素与折叠号 0、1 和 2 进行比较时,这将返回计数(如果元素不等于 I,则返回 false,否则返回 true)。我们可以对布尔值求和(将它们设置为 1)来得到总量。

要回答您的其他问题,我们可以使用类似的代码将图像分成折叠:

#assuming images are in a list:
image_folds = [[images[J] for J in np.where(folds==I)[0]] for I in range(num_folds)]

#assuming images are in an array of size [num_images, width, height, channels]
image_folds = [images[folds==I] for I in range(num_folds)]

【讨论】:

  • 那么这将返回所有折叠中的实例数?如果是这样,我如何修改它以返回每个折叠中的实例数,即计数 0、1 和 2 的数量?
  • 这样就可以了,经过编辑使其更清晰
  • 哦!好的,我现在明白你的意思了,谢谢。你知道我可以将这些折叠实例组合在一起,在它们自己的数组中吗?例如,我如何将属于 fold 1 的所有实例组合在它们自己的单独数组中?我认为这与图像数组本身有关,并确定哪些图像对应于折叠数组中的哪个元素?
  • 在代码的最后一部分,你可以只替换一个索引,即。 image_fold_1 = images[folds==1],或按原样运行代码并调用:image_fold_1 = image_folds[1]
  • 因此,如果我有一个计数数组,即每个图像的 1x6 数组,其中 6 个条目代表 6 种不同的核类型,我将如何为每个折叠绘制计数的直方图每种单元格类型分别,如果可能的话,我将如何计算在特定箱内有多少图像计数?如果我纠缠不清,请提前道歉,这有点令人困惑
猜你喜欢
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 2015-01-08
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多