sklearn.feature_selectionを利用して絞り込んだ特徴量の名前を確認したいのですが、
どうのようにしたら良いのでしょうか?
import numpy as np import pandas as pd from sklearn.model_selection import ShuffleSplit from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import chi2 df = pd.read_csv('/Users/hoge/Desktop/ファイル名.csv') data = np.array(df) X = data[:,1:58] y = data[:,0] ss = ShuffleSplit(n_splits=1, train_size=0.8, test_size=0.2) train_index, test_index = next(ss.split(X, y)) X_train, X_test = X[train_index], X[test_index] y_train, y_test = y[train_index], y[test_index] skb = SelectKBest(chi2, k=20) skb.fit(X_train, y_train) X_train_new = skb.transform(X_train) X_train_new.shape, X_train.shape # 絞り込まれた20 skb.get_support() array([False, False, False, False, True, True, False, False, False, True, True, True, False, True, False, False, False, False, False, False, True, False, True, True, True, False, False, False, True, False, False, True, True, False, True, False, True, True, False, False, True, False, True, True, False, False, False, False, False, False, False, False, False, False, True, False]) # skb.get_support()で絞り込まれたtrue,falseを名称で確認したい # feature_namesが入っていないデータなのでおそらく仕方ない data.feature_names[skb.get_support()] AttributeError: 'numpy.ndarray' object has no attribute 'feature_names' # 下記を試してみましたが上手くいかず。。。。 df.columns[skb.get_support()] IndexError: boolean index did not match indexed array along dimension 0; dimension is 57 but corresponding boolean dimension is 56
プログラミングの初心者のため、大変稚拙な質問かと存じますが、
ご教示いただけましたら幸甚です。
何卒よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/04 11:33
2019/11/04 11:49
2019/11/04 12:07
2019/11/04 12:28
2019/11/04 13:30
2019/11/04 13:39
2019/11/04 13:57