获取SelectKBest函数python的功能名称

2024-09-28 01:26:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我在sklearn中实现了SelectKBest,我想得到K个最佳列的名称,而不仅仅是每个列的值

我需要做什么?

我的代码:

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

X_new.shape

xu new是一个numpy.ndarray,它有k个col,但没有col名称。


Tags: 代码numpy名称newtransformcolsklearnfit
3条回答

model=SelectKBest(k=5)model.fit(X,y)

print(model.get_params)

型号=SelectKBest(f_classif,k=8).fit(X,Y)

选定的功能名称=X.columns[模型.获取支持]

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

示例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)']

相关问题 更多 >

    热门问题