我使用以下代码在数据中创建交互术语:
def Interaction(x):
for k in range(0,x.shape[1]-1):
for j in range(k+1,x.shape[1]-1):
new = x[:,k] * x[:,j]
x = np.hstack((x,new[:,None]))
return x
我的问题是,与SKLearn的多项式特征相比,它的速度非常慢。我怎样才能加快速度?我不能使用SKLearn,因为我想进行一些定制。例如,我想做一个交互变量X1*X2,但也要做X1*(1-X2),等等
Tags:
我们应该成对地将每行的每个元素相乘,我们可以这样做
np.einsum('ij,ik->ijk, x, x)
。这是冗余的2倍,但仍然比PolynomialFeatures
快2倍性能比较:
相关问题 更多 >
编程相关推荐