因此,使用对数回归似乎是显而易见的选择。覆盖率曲线基于历史活动,但我对总用户数有一些额外的了解,因此我确信覆盖率永远不会超过某个数字。
我很难将建模的对数曲线与已知的硬顶混合起来。理想情况下,我认为我应该添加一些修饰符,当输出接近已知上限时增加递减效应,以帮助保留较低值(大多数活动发生的地方)的曲线,同时添加已知上限以防止模型返回值其中覆盖率为所有用户的 125%。
目前我正在使用 scipy 优化,我在已知的最大值处添加了大量的合成数据,以尝试强制该模型尊重最大值,但我认为我在这里走错了路:
我觉得我需要另一个函数来获取这个函数的输出,并在值接近已知最大值时添加强度增加的惩罚,但我似乎无法让它工作,我的曲线一直为负值或混合结果真的像硬顶一样刺耳,关于如何解决这个问题有什么想法吗?