百度对世界杯赛果的基于大数据预测是否靠谱

本文写于 2014.6.23 20:49

前言

百度利用大数据分析对世界杯的赛果进行了预测:对 A 队 VS B 队的比赛给出了下面三个数据:A 队胜的概率,平的概率和 B 队胜的概率三个数字,下面用 [x, y, z]x, y, z 均为百分比)这样的数组来表示。

评估标准

为了验证百度大数据分析是否正确,我对每一次预测进行了这样的评分: 如果 A 队胜利,则本次预测获得的分数为 x,若平分,则获得的分数为 y,若 B 队胜利则获得分数为 z

这里为什么不像百度那样子说“我预测了巴西赢的概率是 72%(这是它对第一场比赛给出的预测),平局 20% 概率,输的概率是 10%,而巴西赢了,所以我的预测是准确的”给百度加 100% 的分数呢?这是因为要防止像“我预测了巴西赢的概率是 40%,平局概率是 30%,输的概率是 30%,而巴西赢了,所以我的预测是准确的”的情况对结果分数的影响,而这种预测我只要看看 FIFA 的排名就可以作出。

对比预测模型

为了检验百度的预测是否真的是屌炸天,我引入了下面的模拟预测:

1. Paul-on-fire Prediction Model

这个模型假设了章鱼保罗还没有死,而且保罗是个先知,所以它能预先知道赛果,所以它的预测是 100% 准确,占卜到 A 队胜利(它的预测是不会错的),它作出的预测将会是 [100, 0, 0],如果平则是 [0, 100, 0],如果 A 队输了,则是 [0, 0, 100]

2. Monkey Prediction Model

这个模型假设预测的是猴子,在他面前分别放三条名叫“A 队赢”,“平”和“A 队输”三只一模一样的香蕉,选择香蕉等于选择结果,由于猴子只关心香蕉而不关心球队,所以它选哪只香蕉是随机,所以它预测每种情况赢的概率都是一致的,所以这个模型给出的预测永远是 [33.333, 33.333, 33.333]

3. Toss-a-coin Prediction Model

这个模型假设选择球队是根据抛硬币决定的,则如果抛到正面,则选 A 队赢,如果抛到反面,则选 B 队赢,永远没有中间,所以它预测 A 队输赢的概率都是 50% 。所以这个模型下面作出的预测永远是 [50, 0, 50]

结果对比

下面的结果是针对截止本文写作时间为止 29 场比赛预测的评分的累加:

ModelScore
Paul-on-fire2900
Baidu1231
Monkey966.57
Toss-a-coin1200

从结果可以看到,百度的预测跟 Paul-on-fire 的结果差太远了(当然跟先知是没法比的),跟抛个硬币分数非常接近。比猴子要好一点。

为何百度预测分数低

百度的分数这么低是因为本文用的评估标准看重的是预测准确的置信度有多高,也就是说,你觉得巴西可能会赢是没有用的,关键是你觉得他赢的可能性有多大,51% 是可能会赢,99% 也是可能会赢。

思考

这并不是说百度的大数据预测是毫无意义的,反倒来说,它可能在统计意义上反而是“最准确的”。但是这个分数可能会提醒你:就现在看来,它起到的作用对于作出抉择可能并不比你有一个资深的球迷朋友靠谱。

代码

Back