我有一组功能集
[x1,x2....xm]
现在我想创建多项式特征集
这意味着如果度为2,则我的特征集为
[x1.... xm,x1^2,x2^2...xm^2, x1x2, x1x3....x1,xm......xm-1x1....xm-1xm]
因此,它只包含二次项的术语... 如果阶数为三,则也会有立方项...
如何做到这一点?
编辑1:我正在进行一个机器学习项目,在这个线性特征上进行非线性回归得到了不错的结果...因此,我想通过将这些特征映射到更高的维度来获得更多的特征数量... 因此,一种方法是考虑特征向量的多项式阶数... 生成x1*x1很容易... :) 但是获取其余组合有点棘手...
如果阶数为3,组合能给我x1x2x3的结果吗?
itertools.combinations(firstOrderFeatures, 3)
可以给你所有三个一阶特征的唯一组合。它将包含{x1, x2, x3}
,但不包括其他5个排列组合。 - DataComputistitertools.combinations_with_replacement(list, r)
可以很好地生成允许重复元素的排序长度为r的元组。 - DataComputist