有没有一种方法可以找到每一行的Fisher分数?

时间:2019-04-09 11:51:09

标签: python

我知道Fisher分数用于特征选择,但是我想计算每个数据集行中的Fisher分数。该数据集包含916个具有4个特征和一个目标的样本。

数据集示例:

       C1           C2         C3          C4      flag
0   0.010760    0.289112    0.000000    0.000000    1
1   0.054865    0.060470    0.520228    0.000000    1
2   0.010760    0.289112    0.000000    0.000000    0
3   0.054865    0.060470    0.520228    0.000000    1
4   0.035029    0.030795    0.520228    0.575762    1
5   0.053166    0.057077    0.520228    0.000000    1
6   0.053166    0.060470    0.520228    0.000000    0
7   0.053166    0.073231    0.520228    0.000000    0
8   0.054865    0.289112    0.520228    0.000000    1

我尝试使用以下代码应用here中发现的费舍尔分数函数,但未提供预期的结果。

from skfeature.function.similarity_based import fisher_score
def score(x):
    return fisher_score.fisher_score(np.array(df.iloc[x, 0:4]), np.array(df.iloc[x, -1]))

我得到以上代码的结果:

    C1     C2       C3       C4     flags
0   0      0        0        0        0
1   2.2    2.2      2.2      2.2      0
2   0      0        0        0        2.2
3   0      0        0        0        0

预期输出是使用列C1-C4并找到每一行的总体得分。有没有一种方法可以对其进行修改,以便为我提供所需的结果?

任何帮助将不胜感激。

0 个答案:

没有答案