首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >费舍尔分数误差-值长度与指数长度不匹配?

费舍尔分数误差-值长度与指数长度不匹配?
EN

Stack Overflow用户
提问于 2022-03-03 13:08:17
回答 1查看 442关注 0票数 1

我正在研究ML问题,为了特征选择的目的,我试图计算fisher评分。

代码语言:javascript
运行
复制
A B Y
1 1 1
2 5 1
1 5 1
7 9 0
7 9 0
8 9 0

t = pd.read_clipboard()

我试图计算每个特征的fisher评分。我只是在学习教程,就像这里这里一样

下面给出了代码

代码语言:javascript
运行
复制
!pip install skfeature-chappers
from skfeature.function.similarity_based import fisher_score
score = fisher_score.fisher_score(t[['A','B']], t['Y'])) # error here
score = fisher_score.fisher_score(t[['A','B']], t['Y']), mode='rank') # tried this but also error
score = pd.Series(fisher_score.fisher_score(t[['A','B']], t['Y']))) # error here

我得到了

代码语言:javascript
运行
复制
ValueError: Length of values (1) does not match length of index (2)

如果我只传递一个功能作为输入,如下所示,

代码语言:javascript
运行
复制
score = pd.Series(fisher_score.fisher_score(t[['A']], t['Y']))

我希望输出的每个功能都有一个分数列表,但是我得到了另一个错误:

代码语言:javascript
运行
复制
ValueError: Data must be 1-dimensional

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-03 13:46:50

对fisher_score方法的输入应该是一个numpy数组,而不是熊猫数据/序列。

试试这个:

代码语言:javascript
运行
复制
score = fisher_score.fisher_score(t[['A','B']].to_numpy(),
                      t['Y'].to_numpy())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71337738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档