优化向量值以获得最大相关性

数据挖掘 线性回归 线性代数
2022-03-09 23:11:10

我是 ML、线性代数、统计等方面的新手,所以请耐心等待术语...

我正在寻找一个向量,它为 1)向量维度之间的所有关系(由减法确定)和 2)由所述关系产生的一些输出值之间的关系产生最大相关我专门使用它来创建一个运动排名系统,该系统采用多场比赛和结果得分,并尝试为可用于预测未来得分的球队分配一个值。换句话说,任何两支球队的评分之间的差异应该可以预测两者之间下一场比赛的得分差异。

例如,如果我有 3 个团队,A、B 和 C,每个团队都以未知评分开始:

A?B?C?

如果每支球队都与对方球队打过一次,那么左表将用于计算他们的评分差异(列队的评分减去行队的评分)。正确的表格将是各自比赛中的得分差异。

ABCABACABABCBCACBCABCA036B303C630

对于此示例,这是一个可能的解决方案,它将导致团队评分差异和得分差异之间的完美相关性。

A1B2C3

这将是回归线,其中 x 2是列团队的评分,x 1是行团队的评分。

y=3(x2x1)

值得注意的是,重要的是各种值(不是它们的标称值)之间的关系,因为这将是另一种可能的解决方案:

A2B4C6

这将产生一个看起来像这样的线性方程,其相关性也为 1:

y=32(x2x1)

我想要做的是找到一种方法来确定 A、B 和 C 的值,以最大化成对差异和结果输出值之间的相关性。团队示例的另一个问题是,并非每个团队都会与其他团队比赛,因此任何结果矩阵都是不对称的(假设这很重要)。

有没有现有的技术可以解决这个问题?

1个回答

这是您可以遵循的一种方法:

  • 建立一个线性回归系统,每场比赛为一行,每个特征对应一个团队。
  • 每个团队的未知特征系数是我们试图确定的团队“实力”。
  • 特征值将是 0、1 或 -1 中的一个,具体取决于该球队是否未参加比赛,分别是该比赛中的列队或行队。
  • 回归目标将是该比赛中的得分差异(列队得分 - 行队得分)。

例如:对于上面的结果矩阵,系统将是:

(1)x1+(1)x2+(0)x3=3(1)x1+(0)x2+(1)x3=6(0)x1+(01)x2+(1)x3=3

  • 上述系统的一种解决方案是:x1=6;x2=3;x3=0
  • 多种解决方案是可能的,可以被视为彼此的翻译(为所有团队优势添加一个常数)。
  • 如果有“n”个团队,那么回归中只有“n-1”个线性独立的列。(在 R 中,其中一个系数为 NA。这可以视为 0,或从回归中删除,有效地使其为 0)。