我应该在使用隔离森林算法时决定污染值(我正在使用 sklearn 实现)。否则,sklearn 的默认值为 0.1。
我担心如果我决定在我当前的数据集上试验这个参数,它会因时间而异,因为我很快就会收到新的数据点。
我怎么能知道这个参数比任何其他参数都好,只是通过尝试去除异常值?
谢谢。
我应该在使用隔离森林算法时决定污染值(我正在使用 sklearn 实现)。否则,sklearn 的默认值为 0.1。
我担心如果我决定在我当前的数据集上试验这个参数,它会因时间而异,因为我很快就会收到新的数据点。
我怎么能知道这个参数比任何其他参数都好,只是通过尝试去除异常值?
谢谢。
如果您想进行类似的实验,我认为您可以在相应领域的数据中添加一些异常值,看看它的影响是什么。
如果您发现这些容易出现异常值(大多数功能都是),那么您可以通过在附加到现有数据之前删除这些异常值来处理这种情况。
你的目标变量是什么?您是否进行了任何相关分析/预测变量重要性?
好的,所以这可能很明显,但这就是我所做的。我用
scores = decision_function(x)
而不是仅仅预测异常,并获得每个实例的异常分数。之后,我可以绘制数据集的异常分布,并为分布设置更好的异常值比例。