如何制作所有功能组合?
How to make all combination of features?
我正在尝试通过结合我的功能来改进我的机器学习系统。我已经编写了一些代码来生成我的功能的所有组合。但是,这似乎效率很低。有没有办法更快地做到这一点?
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)
首先,查看 Python 的 itertools 包;这将有助于使您的代码更高效和可读。你可以用那个包做你想做的大部分组合事情。
一个很大的优势是,您可以获得一个 生成器 用于组合序列,因此您不必将它们全部存储在一个列表中。
另外,请注意您的流程本来就很慢。如果你想要 16 个特征的所有可能组合,那就是通过任何处理循环 2**16 次。您已经进行了 64K 次迭代,每增加一个功能,迭代次数就会翻倍。
在进行任何繁重的处理之前,您能否考虑进行 PCA(主成分分析)和特征缩减?
我正在尝试通过结合我的功能来改进我的机器学习系统。我已经编写了一些代码来生成我的功能的所有组合。但是,这似乎效率很低。有没有办法更快地做到这一点?
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)
首先,查看 Python 的 itertools 包;这将有助于使您的代码更高效和可读。你可以用那个包做你想做的大部分组合事情。
一个很大的优势是,您可以获得一个 生成器 用于组合序列,因此您不必将它们全部存储在一个列表中。
另外,请注意您的流程本来就很慢。如果你想要 16 个特征的所有可能组合,那就是通过任何处理循环 2**16 次。您已经进行了 64K 次迭代,每增加一个功能,迭代次数就会翻倍。
在进行任何繁重的处理之前,您能否考虑进行 PCA(主成分分析)和特征缩减?