При выполнении некоторого полиномиального преобразования для моего набора функций я читал преобразователь sklearn.preprocessing
PolynomialFeatures
, но я понял, что преобразование включает в себя все возможные комбинации, даже используя параметр interaction_only=True
.Мне было интересно, если есть способ указать, что нужны только некоторые взаимодействия (комбинации).Например,
Учитывая следующий фрейм данных:
a b c Z X W
0 1 2 3 0 1 0
1 1 2 3 1 0 1
2 1 2 3 0 0 1
Предположим, что a, b, c принадлежит типу объекта, а ZWX - другому, и нас просто интересуют взаимодействиямежду объектами разных типов.
Таким образом, требуемый вывод будет содержать только оригинальные объекты и взаимодействия между объектами различных типов.Конечно, установив Interaction_only = True, вы просто получаете «реальные взаимодействия» и избегаете таких функций, как ^ 2, Z ^ 2 и так далее ...
a b c Z X W a*Z a*X a*W b*Z b*X b*W c*Z c*X c*W
0 0 1 2 3 0 1 0 0 1 0 0 2 0 0 3
3 1 1 2 3 1 0 1 1 0 1 2 0 2 3 0
3 2 1 2 3 0 0 1 0 0 1 0 0 2 0 0
Я хотел бы просто выполнять взаимодействия между столбцамиa, b, c и Z, X, W и избегайте таких комбинаций, как a*c
или Z*X