我正在开发一种ML算法,以通过ExtraTrees获得特征重要性。 我试图解决的问题是变量不是标量,而是具有不同维度或矩阵的列表,但是现在我只关注列表。 唯一认为我能做到的就是FI,平面列表相互汇合。
目标: 我想要做的是为每个不同的列表获得一个得分点,而不是每个列表元素的得分。
我在这里介绍数据集的玩具示例和当前代码:
df = pd.DataFrame({"list1": [[10,15,12,14],[20,30,10,43]], "R":[2,2] ,"C":[2,2] , "CLASS":[1,0] , "scalar1":[1,2] , "scalar2":[3,4]})
PCA(下文)之后:
df ['new'] = pd.Series([a.reshape((c,r))for(a,c,r)in zip(df.A,df.C,df.R)])
df ['pca'] = pd.Series(df.new中矩阵的[pca_volatilities(矩阵)])
变为:
list1 # C # C1 # C2 # CLASS # R # new # pca # flat_pca
0 [10, 15, 12, 14] 2 1 3 1 2 [[10, 15], [12, 14]] [[-1.11803398875], [1.11803398875]] [-1.11803398875, 1.11803398875]
1 [20, 30, 10, 43] 2 2 4 0 2 [[20, 30], [10, 43]] [[-8.20060973343], [8.20060973343]] [-8.20060973343, 8.20060973343]
这里我介绍了契合度:
X = np.concatenate([np.stack(df.flat_pca,axis=0), [df.C1, df.C2]], axis=0).transpose()
Y = np.array(df.CLASS)
model = ExtraTreesRegressor()
model.fit(X,Y)
model.feature_importances_
返回: 数组([0.2,0.3,0.2,0.3])。
我需要的是list1,C1,C2和flat_pca的得分。我不知道该怎么做。
希望有人能够帮助我,提前谢谢!!!!!