Вопросы, чтобы найти минимальные функции, необходимые для обучения модели - PullRequest
1 голос
/ 02 мая 2019

У меня есть фрейм данных, который содержит столбцы price_range (target_attribute) и другие функции. У меня есть вопрос, который просит меня найти наименьшее подмножество возможных функций (наименьшее количество столбцов функций), чтобы оценка модели превышала 0,4

В настоящее время моя идея состоит в том, чтобы отбрасывать столбцы объектов один за другим, чтобы увидеть, когда оценка модели приближается к 0,4. Это правильно? Как удалить столбец один за другим в кадре данных?

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Какую модель ML вы используете? Древовидные модели (такие как повышение градиента и случайные леса) имеют измерение «Важность объекта», которое можно использовать для этого. Вы можете приспособить свою модель к каждой функции, отметьте clf.feature_importances_ и попробуйте удалить модели с более низкими показателями.

Вы можете проверить документацию здесь: здесь

Другой вариант - следовать тому, что сказал @Matt, и использовать что-то вроде рекурсивного исключения функций Вот простой пример :

from sklearn.feature_selection import RFE
rfe = RFE(estimator=svc, n_features_to_select=1, step=1)
rfe.fit(X, y)
ranking = rfe.ranking_

Последний, более простой подход заключается в удалении объектов со слишком низкой дисперсией. Интуиция здесь заключается в том, что, как правило, функции с низкой дисперсией мало что помогут вашей модели различить классы. Вы должны установить порог того, насколько высокой должна быть дисперсия, чтобы сохранить ее в наборе данных. Это , как вы делаете это с помощью sklearn:

from sklearn.feature_selection import VarianceThreshold
X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
sel = VarianceThreshold(threshold=(.8 * (1 - .8)))
sel.fit_transform(X)

Обратите внимание, что эти примеры взяты из руководства sklearn по выбору функций.

0 голосов
/ 02 мая 2019

Вы можете использовать рекурсивное удаление функций. Это будет соответствовать модели и удалять наименее важные функции (или функции в зависимости от установленного вами размера шага), пока они не достигнут желаемого количества функций.

См. здесь и здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...