如何在我的数据集中找到每折的实例数量?

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

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

输出如下:

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

以及附件图片

我被告知数据集本身有3个折。计数是一个Nx6的矩阵,每行对应一个图像块,每列对应6种细胞类型(称为T1,T2, … , T6)。folds似乎是一个1xN的矩阵,但我并不确定,它包含的值范围是{0,2}。

我如何找出每个折的实例数量?如果可能的话,我如何找出折的范围,即哪些实例属于哪个折(或者将实例分组到各自的数组中,代表每个折,如fold1 = x, fold2 = x_2等),然后为每个折绘制一个直方图,使得每种细胞类型的计数分别绘制(总共6个图)?


回答:

好的,既然你对编程还不熟悉,我将解释索引是如何工作的(在numpy中,这是一个几乎通用的python数学库)。

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

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

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

num_folds = 3fold_counts = [np.sum(folds==I) for I in range(num_folds)]#将会返回 [5, 7, 6]

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

为了回答你的另一个问题,我们可以使用类似的代码将图像分成各自的折:

#假设图像在一个列表中:image_folds = [[images[J] for J in np.where(folds==I)[0]] for I in range(num_folds)]#假设图像在一个大小为[num_images, width, height, channels]的数组中image_folds = [images[folds==I] for I in range(num_folds)]

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注