在查看了大量方法和帖子之后,我还不清楚如何解决这个问题,这似乎很简单。 我有以下数据集,其中包含 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 个数字中的每一个,除以这个总数,都会给你所需的值。