首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从分类数据集( make_classification )中删除冗余特征

从分类数据集( make_classification )中删除冗余特征
EN

Stack Overflow用户
提问于 2021-01-03 10:37:21
回答 1查看 377关注 0票数 0

在make_classification方法中,

X,y = make_classification(n_samples=10, n_features=8, n_informative=7, n_redundant=1, n_repeated=0 , n_classes=2,random_state=6)

关于n_redundant

文档字符串的冗余特性的数量。这些特征作为信息特征的随机线性组合生成。关于n_repeated的文档字符串--从信息中随机抽取的重复特性的数量

选择features.

  • The

  • n_repeated特性很容易,因为它们与信息丰富的

  • 文档字符串高度相关,因为重复和冗余特性表明这两个特性都是从信息特性中提取的。

我的问题是:如何删除/突出显示冗余特性,它们的特点是什么。

附加的是所有特征之间的相关热图,这些特征在图像中是冗余的。

请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-03 15:30:56

检查有多少独立列使用np.linalg.matrix_rank(X)

  • To查找矩阵X的线性无关行索引的
  1. 使用sympy.Matrix(X).rref()

演示

生成数据集并检查独立列的数量(矩阵级别):

代码语言:javascript
复制
from sklearn.datasets import make_classification
from sympy import Matrix

X, _ = make_classification(
    n_samples=10, n_features=8, n_redundant=2,random_state=6
)
np.linalg.matrix_rank(X, tol=1e-3)
# 6

查找线性独立列的索引:

代码语言:javascript
复制
_, inds = Matrix(X).rref(iszerofunc=lambda x: abs(x)<1e-3)
inds
#(0, 1, 2, 3, 6, 7)

删除相关列并检查矩阵级别(独立列的数值):

代码语言:javascript
复制
#linearly independent
X_independent = X[:,inds]
assert np.linalg.matrix_rank(X_independent, tol=1e-3) == X_independent.shape[1]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65548856

复制
相关文章

相似问题

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