我知道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
并找到每一行的总体得分。有没有一种方法可以对其进行修改,以便为我提供所需的结果?
任何帮助将不胜感激。