Запустить полиномиальную регрессию без сочетания признаков - PullRequest
0 голосов
/ 12 февраля 2019

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

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

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

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

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

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

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

Для еще более специфических нужд используйте этот инструмент статистики

0 голосов
/ 12 февраля 2019

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

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

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