【发布时间】:2021-08-07 09:49:12
【问题描述】:
我正在尝试对一个小数据集进行随机过采样以进行线性回归。然而,scikit 学习采样 API 似乎不适用于浮点值作为其目标变量。有没有办法解决这个问题?
这是我的 y_train 值的样本,它们是对数转换的。
3.688879 3.828641 3.401197 3.091042 4.624973
from imblearn.over_sampling import RandomOverSampler
X_over, y_over = RandomOverSampler(random_state=42).fit_sample(X_train,y_train)
--------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-53-036424abd2bd> in <module>
1 from imblearn.over_sampling import RandomOverSampler
~\Anaconda3\lib\site-packages\imblearn\base.py in fit_resample(self, X, y)
73 The corresponding label of `X_resampled`.
74 """
---> 75 check_classification_targets(y)
76 arrays_transformer = ArraysTransformer(X, y)
77 X, y, binarize_y = self._check_X_y(X, y)
~\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py in check_classification_targets(y)
170 if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',
171 'multilabel-indicator', 'multilabel-sequences']:
--> 172 raise ValueError("Unknown label type: %r" % y_type)
173
174
ValueError: Unknown label type: 'continuous'
【问题讨论】:
-
为什么要对连续目标重新采样?看起来您手头有一个回归问题,因为您想要执行线性回归。然而,重采样策略适用于类别分布不平衡的分类问题。这就是为什么
RandomOverSampler不接受float作为目标类型的原因。毕竟重新采样并不意味着回归问题。 -
您好,谢谢。如果我有一个用于线性回归问题的小数据集,我应该怎么做?
-
快速搜索将我带到这个article。
reg_resampler包在您的方法中可能很有用。将在示例中使用该包留下答案。
标签: python scikit-learn linear-regression logarithm oversampling