编辑以重新打开问题,我将尝试回答 @user2974951 提出的问题:
我对三分法数据集有大量的用户偏好统计信息。您可以将每个数据三重奏可视化为具有 X、Y 和 Z 值的 3D 矢量。X + Y + Z = 1
由于我使用的数据的三分形状,所有向量都符合。也可以将其可视化为等边三角形中的一个点。
我有很多测试,每个测试都有大量的 3D 向量(特征)。
简单地平均从 X1 到 Xn 的所有分量:
X = (X1+X2+X3+...Xn)/n
Y = (Y1+Y2+Y3+...Yn)/n
Z = (Z1+Z2+Z3+...Zn)/n
这给了我X,Y,Z
每个测试的平均值
feature1 feature2 feature3 Average
test1-> X11,Y11,Z11 X12,Y12,z12 X13,Y13,Z13 ... -> X1,Y1,Z1
test2-> X21,Y21,Z21 X22,Y22,Z22 X23,Y23,Z23 ... -> X2,Y2,Z2
test3-> X31,Y31,Z31 X32,Y32,Z32 X33,Y33,Z33 ... -> X3,Y3,Z3
我现在想要的是在一定程度上减少特征数量以获得类似的结果。例如,我想将特征减少一半,只选择那些能够获得最相似平均值的特征。
(如果我也想保持最相似的标准偏差或两者的组合,那么问同样的问题就太多了?)
那么,我该如何选择最佳功能呢?
一些 Python 示例会很棒
对不起,如果我用错误的词问。我是机器学习的新手。
更新:一些示例数据
V0 V1 V2 V3 V4 [...]
T1 0.5,0,0.5 1,0,0 0.5,0.5,0 0.16,0,0.84 0,0,1 [...]
T2 0.57,0.11,0.32 0.53,0.15,0.32 0.24,0.51,0.24 0.18,0.15,0.67 0.54,0.15,0.31 [...]
T3 0,0.17,0.83 0.57,0.03,0.4 0.31,0.4,0.29 0.04,0.3,0.66 0.07,0.05,0.87 [...]
T4 0.1,0.43,0.47 0.81,0,0.19 0.25,0,0.75 0,0.21,0.79 0.43,0.19,0.38 [...]
T5 0,1,0 0.99,0.01,0 0.21,0.58,0.21 0,0.61,0.39 0.5,0,0.5 [...]
T7 0.29,0.37,0.34 0.53,0.36,0.11 0.27,0.48,0.25 0.13,0.47,0.4 0.28,0.56,0.16 [...]
T8 0.82,0.15,0.03 0.43,0.38,0.19 0.47,0.31,0.22 0.2,0.22,0.58 0.35,0.33,0.33 [...]
T9 0.29,0.22,0.49 0.35,0.32,0.33 0.3,0.4,0.3 0.28,0.36,0.36 0.33,0.34,0.34 [...]
每个Tn平均每个维度 X、Y 或 Z 的所有Vn 。
我想减少数字或Vn来计算平均值,根据我的数据选择最相关的Vn以获得每个T的相似平均值。每个向量V来自一个传感器,我想减少传感器的数量以获得相同的平均值到某个近似值或某些有限数量的传感器并计算差异。我喜欢 +2000 个测试T每个带有 +100 个向量V。
所以特征选择的目标是所有特征的平均值