Подгонка линейной регрессии Python с использованием Greedy Feature Selection - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь подогнать модель линейной регрессии, используя алгоритм выбора жадных объектов. Чтобы быть более конкретным, у меня есть четыре набора данных:

X_dev, y_dev, X_test, y_test, причем первые два обозначают особенности и ярлыки для учебного набора, а последние два - для испытательного комплекта. Размер матриц: (900, 126), (900, ), (100, 126) и (100, ) соответственно.

Что я имею в виду под «жадным выбором функций», так это то, что я сначала подобрал бы 126 моделей, используя одну функцию из набора X_dev, выбрал лучшую, затем запустил модели, используя первую и каждую из оставшихся 125 моделей. , Выбор продолжается до тех пор, пока я не получу 100 функций, которые лучше всего работают среди оригинальных 126.

Проблема, с которой я сталкиваюсь, касается реализации в Python. Код, который у меня есть, предназначен для подгонки одной функции:

lin_reg.fit(X_dev[:, 0].reshape(-1, 1), y_dev)
lin_pred = lin_reg.predict(X_test)

Поскольку размеры не совпадают ((100, 126) и (1, )), я получаю ошибку несоответствия размеров.

Как мне это исправить? Я пытаюсь предсказать, как работает модель при использовании единственной функции.

Спасибо.

1 Ответ

0 голосов
/ 01 ноября 2018

Применить то же преобразование к X_test

lin_reg.fit(X_dev[:, 0].reshape(-1, 1), y_dev)
lin_pred = lin_reg.predict(X_test[:, 0].reshape(-1, 1))

Я также не думаю, что изменение формы необходимо.

lin_reg.fit(X_dev[:, 0], y_dev)
lin_pred = lin_reg.predict(X_test[:, 0])

Должно работать так же

...