获取SelectKBest函数的功能名称 [英] get feature names of SelectKBest function python

查看:34
本文介绍了获取SelectKBest函数的功能名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从skledge实现了SelectKBest,我希望获得K个最佳列的名称,而不仅仅是每个列的值。

我需要做什么?

我的代码:

X_new = SelectKBest(chi2, k=2).fit_transform(X, y)

X_new.shape

X_new是一个数字.ndarray,它有k列,但没有列名称。

推荐答案

您可以获取所选功能的索引

示例1

from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2

iris = load_iris()
X, y = iris.data, iris.target

selector = SelectKBest(chi2, k=2)
selector.fit(X, y)

X_new = selector.transform(X)
X_new.shape
print(selector.get_support(indices=True))

现在,如果您确实想要获取列的实际名称,我们需要使用 pandas

示例2

from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
import pandas as pd

iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = pd.DataFrame(iris.target)

selector = SelectKBest(chi2, k=2)
selector.fit(X, y)

X_new = selector.transform(X)
print(X_new.shape)

X.columns[selector.get_support(indices=True)]

# 1st way to get the list
vector_names = list(X.columns[selector.get_support(indices=True)])
print(vector_names)

#2nd way
X.columns[selector.get_support(indices=True)].tolist()

结果

Index([u'petal length (cm)', u'petal width (cm)'], dtype='object')

['petal length (cm)', 'petal width (cm)']

['petal length (cm)', 'petal width (cm)']

这篇关于获取SelectKBest函数的功能名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆