Я относительно новичок в SKLearn и у меня есть вопрос по выбору функций.
Я пытаюсь построить модель SVM, в моих данных содержится около 30 объектов со всеми примерно 10 тыс. Точек данных, и яв настоящее время пытаюсь устранить как можно больше бесполезных функций. Сначала я удалил функции, которые тесно связаны с другими функциями, и теперь хочу использовать RFECV для оптимизации остальных.
Для начала я нашел этот код на веб-сайте sklearn, у меня есть пара проблемс этим и задавался вопросом, может ли кто-нибудь помочь.
X = df.drop(['label'], axis=1)
y = df['label']
rfe = RFECV(SVR(kernel='linear'), step=1, scoring='accuracy')
rfe.fit(X, y)
print(rfe.ranking_)
Во-первых, если я запускаю этот процесс таким, какой он есть, он запускается вечно, я оставляю его целую вечность, и на самом деле мне пока не удалось его завершить. Однако, если я удаляю kernel='linear'
, он запускается достаточно быстро, но затем выдает сообщение об ошибке, которое появляется из rfe.fit(X, y)
:
RuntimeError: The classifier does not expose "coef_" or "feature_importances_" attributes
Я сократил свои функциипримерно до 10, просто чтобы посмотреть, смогу ли я ускорить процесс в качестве теста, а также поиграться с переменной step
, но с переменной kernel='linear'
там, кажется, ничто не поможет ускорить его, он просто работаетчасами ничего не делая. Все, что я хочу, это список функций, которые можно использовать с помощью метода RFECV. У кого-нибудь есть предложения по поводу того, что я делаю неправильно или что я могу сделать, чтобы ускорить процесс?
Большое спасибо