s***n 发帖数: 678 | 1 手上有个项目,预测给某货物定价为某值的时候,某顾客是否购买。第一个目标是看预
测概率的area under a curve,我第一个尝试是logistic regression ,大概在cross
validation数据上正确率85%,AUC也是0.85。用上random forest,能达到两个接近0.
9. 然后我再试着跑xgboost(objective = "binary:logistic"),能做到0.95. 这样
显然xgboost表现最好。
接下来问题来了,假设我们给所有用户同一个定价,要求优化一个盈利最大的定价,盈
利是单位商品的获利乘以顾客可能购买的概率。这个函数不难写,可是如果我用random
forest 或者xgboost的模型,会出现一个问题,就是假如我定价很大的时候,所有顾
客都已经只有很小概率购买(0.01甚至以下),可是这些概率就不变了,不再随定价的
升高而减小。那么随着价格不断抬高,盈利反而会变大,最后在某个高价的情况下,会
成为盈利最大的定价。这显然是不合理的。
如果用logistic regression 的模型,最大盈利的定价是在中间某合理定价上,高价和
低价时候盈利都会很快减小,这个答案看起来合理多了。(这个最优定价还和random
forest 或者xgboost的模型在中间价格时候的最优定价不完全一样。)
我感觉这个问题的原因是,random forest 或者xgboost的目标是把分类分清,那么它
预测概率小于0.5很多的时候,分类已经分清了,所以这两个模型就没有继续降低预测
的概率。random forest和xgboost似乎都是基于树的,主要关注于分类边界情况,对于
extreme cases并不敏感。理论上我可以手动cutoff一下,认为高价或者低价情况的
random forest或者xgboost的模型计算,可是这样形同作弊啊。
求教一下我的理解对不对,已经这种情况下用什么模型更加合理。 |
s*********h 发帖数: 6288 | 2 你说的这个顾客购买概率随着价格变化而下降,这个是有数据了吗?
怎么知道到了一定程度概率不再变小的?
我怎么觉得你现在的问题根源在于这个“不再变小”的假设? |
n*****3 发帖数: 1584 | 3 common sense?
【在 s*********h 的大作中提到】 : 你说的这个顾客购买概率随着价格变化而下降,这个是有数据了吗? : 怎么知道到了一定程度概率不再变小的? : 我怎么觉得你现在的问题根源在于这个“不再变小”的假设?
|
s*********h 发帖数: 6288 | 4 我是说到一定程度不会下降了。
【在 n*****3 的大作中提到】 : common sense?
|
e*********r 发帖数: 65 | 5 你应该设定最优化条件的boundary,比如价格到某个程度再升就是不合理的,或者销售
数量一定要大于某个值也有商业意义。 |
s****h 发帖数: 3979 | 6 问题原因其实你已经说得很清楚了。
解决办法不就在原因里么?呵呵。
用LR的结果找到合理价的范围,然后再用xgboost在合理范围内找最优。 |
s***n 发帖数: 678 | 7 用RF建模之后,尝试不同利率,观察到的现象。
【在 s*********h 的大作中提到】 : 我是说到一定程度不会下降了。
|
s***n 发帖数: 678 | 8 主要是这个boudary不好设,有拍脑袋的嫌疑。
另外我很怀疑Random forest里头给的概率本身定义不是我们一般理解的概率,它们本
来只是树投票的结果,只是分类中使用的参数。RF分类可能比Logistic regression准
,这个概率的预测可能在任何rate下都是不准的。。。
【在 e*********r 的大作中提到】 : 你应该设定最优化条件的boundary,比如价格到某个程度再升就是不合理的,或者销售 : 数量一定要大于某个值也有商业意义。
|
s*********h 发帖数: 6288 | 9 所以你的意思是说模型的预测结果是这样子?我以为是你从train data中已经观测到这
一结果了。
这是正常的吧。random forecast 和其他tree based model都无法预测出超过train
data的范围。
【在 s***n 的大作中提到】 : 用RF建模之后,尝试不同利率,观察到的现象。
|