Я хочу вычислить условия взаимодействия для массива numpy
x
произвольной длины, чтобы входные данные типа
a = np.array([(1,2),(2,4),(1,3)])
b = build_interactions(a)
производит что-то вроде
b
array([[1, 2],
[2, 4],
[1, 3],
[2, 8],
[1, 6],
[2, 12]])
Я знаю, что это можно сделать с помощью sklearn.preprocessing.PolynomialFeatures()
, однако я бы хотел вычислить условия без дополнительных пакетов. Пока у меня есть
def build_interactions(x):
m, n = x.shape
interactions = np.ones((m, n*(n+1)//2))
Как я могу заполнить матрицу терминами взаимодействия наиболее эффективным способом?