将分数转换为概率

时间:2011-03-24 23:16:23

标签: algorithm math probability

人们访问我的网站,我有一个算法产生1到0的分数。分数越高,这个人买东西的概率越大,但分数不是概率,它可能不是与购买概率的线性关系。

我有一大堆数据,说明过去我给人们的分数,以及这些人是否实际购买。

使用这些有关过去分数发生情况的数据,我希望能够根据过去的数据得分并将其转化为相应的概率。

有什么想法吗?

编辑:有些人建议推销,我应该提到我考虑过这种方法,但我确信必须有一种方法可以“顺利”完成。前一段时间我问了一个关于一个不同但可能相关的问题here的问题,我觉得类似的东西可能适用,但我不确定。

edit2 :假设我告诉过你,100位客户的评分高于0.5,其中12位购买,而25位客户的评分低于0.5,其中2位购买者。对于得分为0.5的人的估计购买概率,我能得出什么结论?

7 个答案:

答案 0 :(得分:4)

绘制图表 - 绘制Y轴上买方与非买方的比率以及X轴上的得分 - 拟合曲线 - 然后对于给定的分数,您可以通过曲线的高度获得概率。

(您不需要在物理上创建图表 - 但算法应该从练习中明显看出)

Simples。

答案 1 :(得分:1)

这就是logistic regressionprobit regression和公司的发明。现在大多数人会使用逻辑回归,但拟合涉及迭代算法 - 当然,有很多实现,但你可能不想自己编写。 Probit回归有一个在链接中描述的近似显式解决方案,可能足以满足您的目的。

评估逻辑回归是否适用于您的数据的一种可能方法是查看每个分数与购买概率的logit(log(p /(1-p))的关系图,并查看是否这些形成一条直线。

答案 2 :(得分:1)

我最终找到了我正在寻找的东西,一种叫做“对邻违规者”的算法。我最初在this paper找到它,但是要注意他们对实现的描述存在缺陷。

我描述了算法,这个缺陷及其解决方案on my blog

答案 3 :(得分:0)

嗯,这样做的直接方法是计算得分间隔中有多少人购买了某些东西,然后在所有间隔内(比如每0.05分)这样做。

您是否注意到较高分数与数据购买可能性增加之间的实际相关性?

我不是统计专家,但可能会有更好的答案。

答案 4 :(得分:0)

您可以将分数分成若干个分组,例如: 0.0-0.1,0.1-0.2,......并计算每个桶购买和未购买东西的客户数量。

或者,您可能希望根据花费的金额(作为散点图)绘制每个分数,并查看是否存在任何明显的关系。

答案 5 :(得分:0)

您可以使用指数衰减来产生加权平均值。

带上您的用户,按照分数顺序排列(随机打破关系)。

从左到右工作,开始时的平均值为0.每个用户,将平均值更改为average = (1-p) * average + p * (sale ? 1 : 0)。从右到左做同样的事情,除了从1开始。

p越小,曲线越平滑。使用您的数据,直到您有p的值,为您提供您喜欢的结果。

顺便提一下,这是Unix系统如何计算负载平均值的关键思路。

答案 6 :(得分:0)

根据您的edit2评论,您没有足够的数据来发表声明。您的整体购买率为11.2%这与您的高于/低于2的购买率没有统计差异.5此外,为了验证您的分数,您必须确保购买百分比随着分数的增加而单调增加。您可以使用,但是您需要根据概率计算器检查结果,以确保它们不会偶然发生。

http://stattrek.com/Tables/Binomial.aspx