首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SMOTE对图像数据进行过采样

使用SMOTE对图像数据进行过采样
EN

Stack Overflow用户
提问于 2018-12-07 17:35:49
回答 3查看 5.8K关注 0票数 7

我正在用CNNs做二进制分类,数据是不平衡的,其中正医学图像:负医学图像= 0.4 : 0.6。因此,我想在训练之前使用SMOTE对阳性的医学图像数据进行过采样。但是,数据的维度是4D (761,64,64,3),这会导致错误

代码语言:javascript
复制
Found array with dim 4. Estimator expected <= 2

所以,我重塑了我的train_data:

代码语言:javascript
复制
X_res, y_res = smote.fit_sample(X_train.reshape(X_train.shape[0], -1), y_train.ravel())

它工作得很好。在将其提供给CNNs之前,我通过以下方法重塑它:

代码语言:javascript
复制
X_res = X_res.reshape(X_res.shape[0], 64, 64, 3)

现在,我不确定这是不是过采样的正确方式,重塑操作符会改变图像的结构吗?

EN

回答 3

Stack Overflow用户

发布于 2019-11-21 11:51:10

我也遇到过类似的问题。我使用了重塑功能来重塑图像的形状(基本上是扁平化图像)

代码语言:javascript
复制
X_train.shape
(8000, 250, 250, 3)

ReX_train = X_train.reshape(8000, 250 * 250 * 3)
ReX_train.shape
(8000, 187500)

smt = SMOTE()
Xs_train, ys_train = smt.fit_sample(ReX_train, y_train)

虽然这种方法慢得可怜,但有助于提高性能。

票数 6
EN

Stack Overflow用户

发布于 2019-11-21 12:12:05

当你做8000x250* 250 *3的重塑时,learning.

  • 8000x250x250x3只是一堆数字,除非你使用某种序列网络来教导它的bad.

  • oversampling不利于图像数据,否则你可以做图像增强(20个裁剪,引入噪声像高斯模糊,旋转,平移等)
票数 1
EN

Stack Overflow用户

发布于 2021-09-18 12:51:14

  • First展平图像对此展平的图像数据及其标签应用SMOTE

将展平的图像重塑为RGB图像

代码语言:javascript
复制
from imblearn.over_sampling import SMOTE
    
sm = SMOTE(random_state=42)
    
train_rows=len(X_train)
X_train = X_train.reshape(train_rows,-1)
(80,30000)

X_train, y_train = sm.fit_resample(X_train, y_train)
X_train = X_train.reshape(-1,100,100,3)
(>80,100,100,3)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53666759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档