我需要强制我的随机森林模型学习特征之间的一种关键关系。我怎样才能做到这一点?

数据挖掘 r 随机森林
2022-02-04 22:29:59

例如,给定 10 个独立特征作为我的 RF 模型的输入,当特征 1 和特征 3 为 100(或更少)时,我的模型输出必须为 5,尽管其他特征的值。我怎样才能将这种关系传授给我的 RF 模型 - 所以它会始终遵守这一点?

我尝试将重复的人工数据点添加到训练集中,其中特征 1 和 3 小于或等于 100,并且输出始终为零,但 RF 模型似乎并不能仅仅基于此理解/学习这种关系。

我还尝试使用(1)树数(2)节点数和(3)最大节点但没有任何成功。

我正在使用 R 中的 mlr 库来创建我的 RF 模型。谢谢。

2个回答

他们预测,机器学习算法不知道。基于树的 ML 算法将为您提供在每个类别中的概率,而不是它是否属于特定类别。通过仔细准备您的标签;如果您的数据有足够多的“特征 1 和 3 小于等于 100”的示例并且结果为 0,那么您的算法很可能会以很高的准确度预测其类别。显然,结果的强度取决于您的 ML 任务是什么、您的数据是什么、它的结构以及您的超参数设置是什么。不知道有没有其他办法可以这样弯曲森林。

我知道这不是您期望的那种答案,但如果我能提供帮助,我会很高兴。

保证这种关系的一种方法是通过 if/else 语句明确指定它。例如:特征 1 == 特征 3 == 100 => 输出 = 5 否则输出 = 随机森林预测(您可以将随机森林训练为“正常”是这种情况)。

其他几件事:

  • 改变树和/或节点的数量不会改变特征之间的关系——这些是用来控制准确性和过拟合的。
  • 引入人工数据点是有风险的,因为它可能会导致训练集中的数据不平衡。
  • 在数据集中创建一个反映关系的新列可能有效,但不能保证。