线性模型生成每个可能输出的概率

数据挖掘 Python 预测建模 张量流 可能性
2022-02-27 05:47:00

这与体育预测(板球)有关。我是机器学习的新手,并通过 TensorFlow 学习它。

我只关注一个主题,即Player A今天的比赛将得分多少?”

我的原始数据包括所有板球运动员在所有比赛中的得分。它还包括更精细的细节,例如比赛发生的场地、昼夜比赛、对手球队等,我需要使用这些数据并预测球员得分的四个可能范围,所有 4 个范围具有相等的概率

我打算从 4 个简单FeatureColumn的开始:

  • 给定球员在过去 10 场比赛中的平均跑动次数(相对于正在训练的比赛)
  • 击球顺序(1到10)(正在训练的比赛中)
  • 自首次亮相以来的平均跑步次数(相对于正在训练的比赛)
  • 平均数 过去 10 场比赛中面对的球数(相对于正在训练的比赛)

我的实际输出将是该球员在正在训练的比赛中的得分。

我可以考虑一名球员最近的 100 场比赛来进行这项训练。

来自 TensorFlow 的本教程https://www.tensorflow.org/tutorials/wide似乎与我正在接近的内容相匹配。但最终的输出是一个二进制值(无论薪水是否>50K)。但是我需要生成具有给定玩家运行概率的输出。例如。

Run     | Probability of getting this run
-----------------------------------------
0 runs  :  0.01
1 run   :  0.01
2 runs  :  0.02
....
13 runs :  0.5
14 runs :  0.04
....
56 runs :  0.08
57 runs :  0.03
....

概率之和应加起来为 1。然后我将所有这些值分组为 4 个范围,每个范围具有相等的概率(每个范围为 0.25),如下所示:

在此处输入图像描述

我可以使用哪种方法来解决这个问题?我阅读了线性回归,这似乎最适合我,但我不清楚如何生成所有可能结果的概率。

2个回答

据我了解——

用你提到的特征和你展示的输出概率训练一个分类器 -

  • 因此,对于Player A,您可以使用所有功能(总体平均得分、过去 10 局的平均得分等)
  • 将得分的运行视为分类变量并尝试学习分类器

  • 把它通过网络,最后有一个 softmax 层 - 这会给你概率总和应该加起来 1

我的推荐

  • 每个玩家的得分都不同,因此您将无法在特定类别中获得足够的数据点(例如,得分为 83 的人数会非常少)

  • 预先对训练数据中的范围进行分组,然后进行分类。

  • 最后有一个 softmax 层不会给你想要的“线性模型”,但肯定会更清晰地解决问题。

我的建议是使用泊松回归。

泊松回归的结果之一是,它是依赖于协变量的泊松分布的 lambda。λ(X¯)

当你有这个时,你可以把它放在方程中,你会读为:λP(X=x)=λkeλk!

0 次运行的概率为:P(X=0)=λ0eλ0!=eλ

1 次运行的概率为:P(X=1)=λ1eλ1!=λeλ

... 等等...