问题描述
按照featureselection.asu.edu/tutorial.php中实现的步骤,我已经实现了以下代码来使用skfeature.function
计算Fisher分数
我的代码段如下:
pip install skfeature-chappers
from skfeature.function.similarity_based import fisher_score
score = fisher_score.fisher_score(X_train,y_train)
idx = fisher_score.feature_ranking(score)
print(idx)
我收到以下属性错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-33-cd27bc981d22> in <module>()
1 import skfeature
----> 2 idx = fisher_score.feature_ranking(score)
3 print(idx)
AttributeError: module 'skfeature.function.similarity_based.fisher_score' has no attribute
'feature_ranking'
解决方法
feature_ranking
似乎不存在,但我认为您可以找到fisher_score
作为API的一部分,该API已经返回带有参数mode='rank'
的索引。尝试以下方法,它对我有用-
from skfeature.function.similarity_based import fisher_score
from sklearn.datasets import load_diabetes
db = load_diabetes()
y_train = db.target
X_train = db.data
idx = fisher_score.fisher_score(X_train,y_train,mode='rank') #returns rank directly instead of fisher score. so no need for feature_ranking
print(idx)
array([1,7,3,6,2,9,8,5,4])