确定 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_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

我想要一个结果表,例如:

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 个数字中的每一个,除以这个总数,都会给你所需的值。

相关内容

  • 没有找到相关文章

最新更新