如何使用R-caret对回归问题中的不平衡类进行子采样?

时间:2018-02-27 15:05:23

标签: r machine-learning regression r-caret

我是堆栈溢出和预测建模的新手。我试图根据光谱学预测叶片大小。然而,叶片大小(连续变量)取决于植物的生命形式(在我的例子中,3个分类)。这些课程严重失衡。最重要的是,我想知道光谱学如何预测每个类别中的叶片大小。目前,我不确定如何拆分我的数据集,我在网上找到的大多数例子都是严格的分类问题,我不确定它是否适用于这种情况。我是否必须为每个班级构建一个单独的训练集,或者这是对训练集进行二次取样(向下,向上等)然后执行回归的正确方法?我正在使用R上的插入包,因为我也正在构建机器学习方法的集合,并且插入符号似乎是最用户友好的方式。 我的数据集包括1647个预测变量和1500个观测值。到目前为止,我正在为每个类构建单独的模型,但它似乎不是正确的方法。

var str = "Mr. Bond is agent 0070".replace(/0(\d+)/, "$1");

console.log(str)

1 个答案:

答案 0 :(得分:1)

你似乎有点困惑;很明显,会出现类不平衡问题。

类不平衡仅适用于分类设置(您处于回归模式);它与类(结果,即您要预测的内容)有关,而不是与您的情况中的功能有关。教科书示例是当您遇到二进制分类问题(0/1)时,例如,99%的样本属于0级,并且您需要采用特定技术以防止分类器获得99%的准确率通过天真​​地预测0级的所有内容,即忽略1级(通常恰好是感兴趣的类别,例如故障,患者等)。

以上任何内容均不适用于您的情况。

话虽如此,根据life_form功能的值将数据集分解为较小的数据集并不是一种无效的方法,一般来说(但不是由于类不平衡,这里不存在)。确定是否应该这样做的最安全的方法是很好的反复试验:尝试一下,并尝试使用整个数据集。原则上,没有理由认为典型的ML算法无法处理这些特征中的这种不平衡。