如何惩罚预测变量以降低其特征重要性



我有一个预测因子主导着我的模型,我仍然想包含它,但我想降低它在最终模型中的重要性。有没有一种好的(科学)pythonic方法来做到这一点?我在想也许定义一个自定义PenaltyTransformer,它将随机噪声引入变量,如下所示:

class PenaltyTransformer(BaseEstimator,TransformerMixin):
def __init__(self, columns, scale=0.1):
self.scale = scale
self.columns = columns
def transform(self, X):
X[:,self.columns] += np.random.normal(loc=0, scale=self.scale, size=X[:,self.columns].shape)
return X

。这有意义吗?

如果不了解您的应用程序,就很难给出关于您应该做什么的明确答案。我可以看到几个选项:

  1. 你在问题中的嘈杂方法可能没问题
  2. 你可以使用具有更高偏差和较低方差的模型,如正则化线性模型(我假设你正在使用GBM,RF或类似的东西来使用术语"重要性")
  3. 您可以完全排除高度预测功能的情况
  4. 您可以构建一个完全排除高度预测特征的模型,然后以某种方式将结果分数与该特征相结合
  5. 您可能还只想接受强功能将成为模型中的主导因素。

相关内容

  • 没有找到相关文章

最新更新