首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sklearn.feature_selection.mutual_info_classif?中的discrete_features参数

sklearn.feature_selection.mutual_info_classif?中的discrete_features参数
EN

Stack Overflow用户
提问于 2022-01-23 09:11:17
回答 1查看 1K关注 0票数 0

我对mutual_info_classif函数作为一种特征选择方法的参数有疑问。

https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.mutual_info_classif.html#sklearn.feature_selection.mutual_info_classif

我有一个二项式目标Y,它采用值(0,1)和X-特征的混合类型.这些特征是二项式(0,1),连续的和范畴的。在范畴内,我有序数特征(例如,低、中、高编码为1,2,3)和非序数(例如,部门名称是一个热编码)。

据我所知,我可以为我的分类特性设置discrete_features = True,为我的数值(连续)特性设置discrete_features=False。discrete_features = 'auto‘是什么意思?它会把我的连续和有序的特征看作是密集的(假的)和一个热编码的特征为稀疏的(真)吗?

有人能澄清在我的情况下如何设置参数值吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-01-25 10:55:42

如果设置discrete_features = 'auto',则如果输入稀疏,则确定discrete_features = True。如果您的输入是密集的,它将其视为连续的。

例如,如果我们运行cat特性,指定discrete_features=True

代码语言:javascript
运行
复制
from sklearn.feature_selection import mutual_info_classif
from scipy.sparse import csr_matrix
import numpy as np

np.random.seed(111)

target = np.random.binomial(1,0.5,20)
cat_feature = np.random.binomial(3,0.5,(20,2))

mutual_info_classif(cat_feature,target,discrete_features=True)
array([0.03219502, 0.00257154])

它不同于指定为False:

代码语言:javascript
运行
复制
mutual_info_classif(cat_feature,target,discrete_features=False)
array([0, 0])

现在,如果使用“auto”与discrete_features=False相同,因为输入很密集:

代码语言:javascript
运行
复制
mutual_info_classif(cat_feature,target,discrete_features='auto')
array([0, 0])

我们使输入稀疏,得到与指定discrete = False相同的输出:

代码语言:javascript
运行
复制
cat_feature = csr_matrix(cat_feature)

type(cat_feature)
scipy.sparse.csr.csr_matrix

mutual_info_classif(cat_feature,target,discrete_features="auto")
Out[42]: array([0.03219502, 0.00257154])

您有此选项,因为我们通常会对分类特性进行编码,而稀疏矩阵则更适合于给定零点的数量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70820610

复制
相关文章

相似问题

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