问题标签 [oversampling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
39 浏览

random - 有没有比 random.sample() 更有效的数据过采样方法?

我遇到了一个很大的不平衡分类问题,想通过对次要类进行过采样来解决这个问题。(N(class 1) = 8,5mio, N(class n) = 3000)

为此,我想通过

其中data是特定于类的 DataFrame 的列表,len(data)=10并且data.shape=(9448788,97)

这按预期工作,但不幸的是需要永远。有没有更有效的方法来做同样的事情?

0 投票
1 回答
440 浏览

python - 如何使用过采样和欠采样的组合?学习不平衡

我想重新采样一些大数据(类大小:8mio vs 2700)我想通过对第 2 类进行过采样和对第 1 类进行欠采样来获得 50.000 个样本。imblearn 似乎提供了过采样和欠采样的组合,但我不明白它是如何做到的作品。

在数据看起来像之前

之后

正如我所期望或希望的那样

0 投票
2 回答
435 浏览

r - R data.table - 以不同采样比例按组采样

我想有效地从 a 中按组随机抽样data.table,但应该可以为每组抽样不同的比例。

如果我想从每个组中抽取分数,我可以从这个问题和相关sampling_fraction答案中得到启发,做一些类似的事情:

但是,如果我想从第 1 组中抽取 10%,从第 2 组中抽取 50%,该怎么办?

0 投票
0 回答
1016 浏览

python - ValueError:无法将字符串转换为浮点 SMOTE fit_sample Python 过采样

我有一个信用风险分析数据集,如下所示:

在loan_status 中,1 表示违约,0 表示非违约。

现在默认的数量非常少,大约为 1000,非默认数量为 25,000。所以我想做过度采样或合成采样。

到这里代码运行良好

在此之后我执行以下操作并且出现错误

有人可以帮忙吗?

0 投票
1 回答
51 浏览

r - 在 R 中使用 64 hz 进行上采样

我有以下格式的数据。此处粘贴的示例数据。它基本上有 3 个变量开始时间、结束时间和这些时间戳之间的一组值。采样率为 64Hz

现在我需要以下格式的输出,两个连续邮票之间的差异为 0.0156(因为采样率为 64 Hz)

我尝试了 Seq 函数的各种方法,但没有成功

样本数据:

0 投票
1 回答
2154 浏览

python - Keras:多类不平衡数据分类过拟合

我有一个约 1000 行的小数据集,有两个分类列[Message][Intent]. 我想创建一个分类模型并对新的、看不见的消息进行预测。

29 个独特的意图是不平衡的,范围从 116 到 4 个值计数:

我首先尝试了一个 CNN 模型和度量准确度和分类交叉熵,但结果并不好: 在此处输入图像描述

在调整了批量大小、epochs、drop-off、激活函数、预训练词嵌入等参数后,还尝试了 bi-lstm 模型,我的模型仍然过拟合。

因此,我尝试在训练模型之前添加一个过采样步骤,以解决类不平衡问题,但现在结果更糟。

在此处输入图像描述

谁能帮我?到目前为止,这是我的代码:

0 投票
1 回答
919 浏览

r - R中ROSE的过采样和欠采样问题

我有一个数据集可以在胜诉案件 (14399) 和败诉案件 (8677) 之间进行分类。该数据集有 912 个预测变量。我试图对丢失的案件进行过度抽样,以达到与获胜案件几乎相同的数量(因此每个获胜案件和失败案件都有 14399 个案件)。

TARGET 是丢失 (0) 和赢 (1) 案例的列:

现在我正在尝试使用 ROSE ovun.sample 来平衡它们

我收到此错误:

任何人都可以帮忙吗?谢谢 :-)

0 投票
1 回答
145 浏览

scikit-learn - 使用 SMOTE 对推文进行上采样

我有一个不平衡的推文数据集,标记为 -1、0、+1。我想通过上采样来平衡数字。我收到以下错误:

could not convert string to float: 'از این به بعد همینهسلبریتی هایی که ایدیولوژی های #جمهوری_اسلامی رو تبلیغ می کنن خارج از مرز ایران هم حق ندارن آسایش داشته باشن و مجبور بود#باش همچنان ادا وفاداری به اون ایدیولوژی رو در بیارن چون هر جا یه دوربین منتظره که #ریاکاری شون رو ثبت کنه '

为什么它应该尝试将字符串变成浮点数?

PS。在重塑之前,tweet_train 和 y_train 是 shape=(n,) 的 numpy 数组

0 投票
1 回答
4199 浏览

python - SMOTE 函数在 make_pipeline 中不起作用

我想同时应用交叉验证和过采样。我从这段代码中得到以下错误:

所有中间步骤应该是转换器并实现拟合和转换,或者是字符串 'passthrough' 'SMOTE(k_neighbors=5, kind='deprecated', m_neighbors='deprecated', n_jobs=1, out_step='deprecated', random_state=42 , ratio=None, sampling_strategy='auto', svm_estimator='deprecated')' (type ) 没有

PS。我使用imblearn.over_sampling.RandomOverSampler而不是SMOTE得到了同样的错误。

0 投票
1 回答
217 浏览

python - 在 PySpark 管道中使用交叉验证进行过采样

我正在研究 PySpark 二进制分类管道,我想在其中使用过采样阶段执行交叉验证(我的数据集不平衡)。问题是过采样阶段也在测试数据集上执行。

管道:

smote是转换测试数据集时我想跳过的阶段。

我查看了 spark 文档和源代码,没有办法跳过 PipelineModel 中的一个阶段。我的解决方案是覆盖_transform原始类的方法以跳过过采样阶段。在我的源代码中安装管道时,这可以正常工作。我用这个:

CustomPipelineModel是一个继承pyspark.ml.PipelineModel并覆盖该_transform方法的类。

但是由于 CrossValidator 使用 PipelineModel 类的原始实现,我不能使用我的自定义方法。

使用 Cross Validator 时跳过过采样阶段的最佳方法是什么?

我也开始研究考虑覆盖它的_fit方法的源代码pyspark.ml.tuning.CrossValidator......第二种解决方案是对训练数据集执行过采样,但这会在交叉验证过程中将偏差引入模型。