Запустите полиномиальную регрессию без комбинаций функций

Я запускаю полиномиальную регрессию для порядка p. Для простоты мы используем порядок p = 2 в этом вопросе.

Предположим, у нас есть X с двумя функциями x1, x2 и y. И я пытаюсь запустить полиномиальную регрессию

y = ε + α + β1•x1 + β2•x2 + β3•x1^2 + β4•x2^2

Я обнаружил, что у sklearn есть sklearn.preprocessing.PolynomialFeatures. Однако, если я использую порядок p = 2, он автоматически дает комбинацию признаков. Это приведет к регрессу:

y = ε + α + β1•x1 + β2•x2 + β3•x1^2 + β4•x2^2 + β5•x1x2

Однако я не хочу сочетания функций, то есть таких вещей, как x1x2. Есть ли какой-нибудь пакет, который может выполнить полиномиальную регрессию, как я хотел?

Спасибо!


person Major    schedule 11.02.2019    source источник


Ответы (2)


numpy.polynomial.polynomial. polyfit кажется удовлетворяет ваши потребности.

Для еще более конкретных потребностей используйте этот инструмент статистики.

person ohlr    schedule 11.02.2019

Tbh, это кажется мне очень странной идеей. Большая сила полифункциональных функций проистекает из интерактивных функций.

Я почти уверен, что там нет ничего встроенного, но

  • вы можете взглянуть на препроцессор PolynomialFeatures и сделать свой собственный с модификациями. Вам нужно будет "вернуть" логику параметра interaction_only
  • просто создайте свой препроцессор, ваш случай довольно прост, .fit будет делать что-то вроде concat(a, a**2)
person Slam    schedule 11.02.2019