Извлечение имен K после выбора KBest - PullRequest
0 голосов
/ 17 июня 2020

У меня есть набор данных, содержащий 1500 строк и около 4500 объектов. Я разделил данные на 2 части: 1000 строк будут использоваться для перекрестной проверки и тестирования моделей, а остальные 500 будут использоваться в качестве удерживаемых данных.

Я разработал регрессор (MLPregressor), который использует перекрестную проверку, а затем извлекает важные особенности K из каждой складки.

Пока это мой код:

neural_network = MLPRegressor(random_state=0, max_iter=200, solver = 'sgd')

mlp = make_pipeline(SelectKBest(f_regression, k=400),
                    MLPRegressor(random_state=0, max_iter=200, solver = 'sgd'))

scores = cross_validate(mlp, X, Y,scoring=['neg_mean_absolute_error'],cv=10, return_estimator=True)

print (scores)
print ("neural_network CV mean mae is:", mean(-scores['test_neg_mean_absolute_error']))

Это результат, который я получаю:

'test_neg_mean_absolute_error': array([-0.69888428, -0.5909938 , -1.49689603, -1.35554199, -0.7943139 ,
       -0.79198426, -1.33923939, -0.84282861, -0.89578304, -1.60170601])}

neural_network CV mean mae is: 1.0408171316672696

Из вывода я понимаю, что вторая складка (-0,59) - моя лучшая. Мой первый вопрос: , как я могу получить имена 400 объектов, выбранных в этой складке? Мой второй вопрос: , как только я получу имена этих функций, должен ли я «очистить» объекты удерживаемых данных, чтобы они также содержали только эти 400 свойств?

...