Выбор K лучших функций - PullRequest
0 голосов
/ 13 марта 2020

Я пытался найти лучшие функции на большом фрейме данных. Мне удалось получить сжатые значения данных, но я не смог получить названия выбранных функций. Ниже мой код:

print('Shape of the bigramdf before feature selection:',bigram_df.shape)
if not os.path.isfile('smalldata/bigram_feather_top_100.feather'):
    SelectKBest(score_func=chi2,k=100).fit(bigram_df.iloc[:,:-1],df['class'])
    cols=SelectKBest.get_support(indices=False) # I am getting error here
    selc_k_best_byte_bigram=bigram_df[:,cols]
    selc_k_best_byte_bigram['id']=bigram_df['id']
    selc_k_best_byte_bigram.to_feather('smalldata/bigram_feather_top_100.feather')

    print('Shape of the bigramdf before feature selection:',selc_k_best_byte_bigram.shape)
else:
    selc_k_best_byte_bigram=pd.read_feather('smalldata/bigram_feather_top_100.feather')

Я получаю следующую ошибку:

TypeError: get_support() missing 1 required positional argument: 'self'

Может ли кто-нибудь помочь мне выяснить, почему я получаю эту ошибку TypeError.

1 Ответ

1 голос
/ 13 марта 2020

Я думаю, вам нужно инициализировать класс в переменной, а затем вызвать .get_support. Поэтому попробуйте заменить:

SelectKBest(score_func=chi2,k=100).fit(bigram_df.iloc[:,:-1],df['class'])

на

k_best = SelectKBest(score_func=chi2,k=100).fit(bigram_df.iloc[:,:-1],df['class'])
cols = k_best.get_support(indices=False)
...