确定每个玩家在 python 中的方差贡献
Determine variance contribution of each player in python
看了很多方法和帖子后,我还不清楚如何解决这个看似简单的问题。
我有以下数据集,其中包含 5 个玩家的分数。它的样本方差是2.98108.
PLAYER | SCORE
-------------------
Bernard | 22.66
Bernard | 27.365
Bernard | 22.814
Anton | 25.012
Anton | 23.676
Anton | 23.954
Carine | 24.722
Carine | 24.026
Carine | 24.335
Carine | 24.05
Bernard | 23.925
Bernard | 24.355
Bernard | 26.699
Carine | 27.999
David | 28.701
David | 22.57
David | 22.365
David | 25.49
David | 26.757
David | 23.878
David | 24.609
David | 22.803
Anton | 25.227
Anton | 25.348
Carine | 27.523
Carine | 28.38
Carine | 28.628
Bernard | 26.651
Bernard | 25.377
Anton | 27.767
Anton | 24.81
Anton | 24.835
Eloy | 26.672
Eloy | 25.683
Eloy | 26.657
Eloy | 24.463
Eloy | 25.808
Eloy | 25.414
Eloy | 26.044
Eloy | 25.619
我想确定每个玩家对整体方差的贡献程度。
Anton | Bernard | Carine | David | Eloy
------------------------------------------------------
25.227 | 26.651 | 24.722 | 28.701 | 26.672
25.348 | 25.377 | 24.026 | 22.57 | 25.683
27.767 | 22.66 | 24.335 | 22.365 | 26.657
24.81 | 27.365 | 24.05 | 25.49 | 24.463
24.835 | 22.814 | 27.523 | 26.757 | 25.808
25.012 | 23.925 | 28.38 | 23.878 | 25.414
23.676 | 24.355 | 28.628 | 24.609 | 26.044
23.954 | 26.699 | 27.999 | 22.803 | 25.619
请注意,我没有任何目标变量:我没有将球员得分拟合到因变量。这使得(对我而言)难以使用诸如 shapley 值、sklearn.feature_selection.chi2 或 feature_importances_ 之类的方法,其中 fit 和 fit_transform 需要目标变量。
Scikit 的 PCA 给出了以下矩阵:
组件_:
-0.21261656 | 0.56000412 | -0.19875582 | 0.77420244 | -0.04791964
-0.31918083 | -0.29286871 | 0.83464075 | 0.33964441 | 0.01918345
0.50226936 | -0.55051268 | -0.21507693 | 0.50440938 | 0.37943954
0.08884174 | -0.33440461 | -0.13381735 | 0.17548621 | -0.9119091
0.76990287 | 0.4309671 | 0.44688451 | 0.00529465 | -0.14759107
explained_variance_ratio_:
0.43725481 | 0.38896865 | 0.14361466 | 0.01989021 | 0.01027166
我想要 table 这样的结果:
Anton | Bernard | Carine | David | Eloy
-------------------------------------------------------------------------
0.20195141 | 0.18162131 | 0.30601668 | 0.15273025 | 0.15768035
告诉我 Carine 是最大的贡献者,占总方差的 30%,其余玩家依此类推。
我可以使用这些矩阵(分量和 explained_variance_ratio)来推断每个玩家对总方差的总贡献吗?如果可以,我该怎么做?
谢谢
由于每个玩家恰好有 8 个数据样本,将所有样本的(总体)均值的平方误差相加,然后首先由玩家对这些误差求和(每个 8 个样本,获得 5 个数字)并对这 5 个数字求和总和。将 5 个数字中的每一个除以这个总数,都会得到您想要的值。
看了很多方法和帖子后,我还不清楚如何解决这个看似简单的问题。 我有以下数据集,其中包含 5 个玩家的分数。它的样本方差是2.98108.
PLAYER | SCORE
-------------------
Bernard | 22.66
Bernard | 27.365
Bernard | 22.814
Anton | 25.012
Anton | 23.676
Anton | 23.954
Carine | 24.722
Carine | 24.026
Carine | 24.335
Carine | 24.05
Bernard | 23.925
Bernard | 24.355
Bernard | 26.699
Carine | 27.999
David | 28.701
David | 22.57
David | 22.365
David | 25.49
David | 26.757
David | 23.878
David | 24.609
David | 22.803
Anton | 25.227
Anton | 25.348
Carine | 27.523
Carine | 28.38
Carine | 28.628
Bernard | 26.651
Bernard | 25.377
Anton | 27.767
Anton | 24.81
Anton | 24.835
Eloy | 26.672
Eloy | 25.683
Eloy | 26.657
Eloy | 24.463
Eloy | 25.808
Eloy | 25.414
Eloy | 26.044
Eloy | 25.619
我想确定每个玩家对整体方差的贡献程度。
Anton | Bernard | Carine | David | Eloy
------------------------------------------------------
25.227 | 26.651 | 24.722 | 28.701 | 26.672
25.348 | 25.377 | 24.026 | 22.57 | 25.683
27.767 | 22.66 | 24.335 | 22.365 | 26.657
24.81 | 27.365 | 24.05 | 25.49 | 24.463
24.835 | 22.814 | 27.523 | 26.757 | 25.808
25.012 | 23.925 | 28.38 | 23.878 | 25.414
23.676 | 24.355 | 28.628 | 24.609 | 26.044
23.954 | 26.699 | 27.999 | 22.803 | 25.619
请注意,我没有任何目标变量:我没有将球员得分拟合到因变量。这使得(对我而言)难以使用诸如 shapley 值、sklearn.feature_selection.chi2 或 feature_importances_ 之类的方法,其中 fit 和 fit_transform 需要目标变量。
Scikit 的 PCA 给出了以下矩阵:
组件_:
-0.21261656 | 0.56000412 | -0.19875582 | 0.77420244 | -0.04791964
-0.31918083 | -0.29286871 | 0.83464075 | 0.33964441 | 0.01918345
0.50226936 | -0.55051268 | -0.21507693 | 0.50440938 | 0.37943954
0.08884174 | -0.33440461 | -0.13381735 | 0.17548621 | -0.9119091
0.76990287 | 0.4309671 | 0.44688451 | 0.00529465 | -0.14759107
explained_variance_ratio_:
0.43725481 | 0.38896865 | 0.14361466 | 0.01989021 | 0.01027166
我想要 table 这样的结果:
Anton | Bernard | Carine | David | Eloy
-------------------------------------------------------------------------
0.20195141 | 0.18162131 | 0.30601668 | 0.15273025 | 0.15768035
告诉我 Carine 是最大的贡献者,占总方差的 30%,其余玩家依此类推。
我可以使用这些矩阵(分量和 explained_variance_ratio)来推断每个玩家对总方差的总贡献吗?如果可以,我该怎么做?
谢谢
由于每个玩家恰好有 8 个数据样本,将所有样本的(总体)均值的平方误差相加,然后首先由玩家对这些误差求和(每个 8 个样本,获得 5 个数字)并对这 5 个数字求和总和。将 5 个数字中的每一个除以这个总数,都会得到您想要的值。