如何制作所有功能组合?

时间:2017-02-03 20:58:48

标签: python machine-learning feature-extraction

我试图通过结合我的功能来改进我的机器学习系统。我编写了一些代码来生成我的所有功能组合。但是,效率似乎非常低。有没有办法更快地做到这一点?

allcomb=[]
for i in range(pow(2,len(features))):
    com=[]
    for j in (range(len(features))):
        if((i&(1<<j))==1):
            com.append(features[j])
    allcomb.append(com)

1 个答案:

答案 0 :(得分:1)

首先,查看Python的itertools包;这将有助于提高代码的效率和可读性。您可以使用该软件包完成大多数组合项目。

一个很大的好处是,您可以获得组合序列的生成器,因此您不必将它们全部存储在列表中。

另外,请注意您的过程本身就很慢。如果您想要16种功能的所有可能组合,那么通过任何处理循环都需要2 ** 16次。您已经进行了64K次迭代,并且每次添加的功能都会加倍。

在进行任何繁重的处理之前,您能考虑进行PCA(主成分分析)和功能减少吗?