功能重要性来自pd dataframe

时间:2016-09-23 10:35:52

标签: python scikit-learn feature-selection

我正在开发一种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的得分。我不知道该怎么做。

希望有人能够帮助我,提前谢谢!!!!!

0 个答案:

没有答案