sklearn.PolynomialFeatures
函数生成矢量的多项式和交互特征。例如:
>>> X = [[1,2,3]]
>>> G = sklearn.PolynomialFeatures(degree = 3, interaction_only = True, bias = False)
>>> G.fit_transform(X)
>>> print(G)
>>>
array([[1., 2., 3., 2., 3., 6., 6.]])
是否有一个等效函数可以对字符串起作用,所以如果输入数组是X = [['a','b','c']]
函数将输出array([['a','b','c','ab','ac','bc','abc']])
并且该函数可以采用任何输入向量?如果不存在这样的功能,您对如何创建它有想法吗?
似乎您正在寻找字符串输入列表的superset。尽管要使用itertools
/ itertools
结构(允许将转换器包含在管道中),但是使用fit
可以很容易地实现,但是可以定义继承自transform
的转换器。否则,只需使用TransformerMixin
方法中包含的代码:
transform
from sklearn.base import TransformerMixin
from itertools import combinations, chain
class NSuperset(TransformerMixin):
def __init__(self, n):
self.n = n
def fit(self, X):
return self
def transform(self, X):
superset = [[''.join(c) for x in X for c in combinations(x, r=i)]
for i in range(1,self.n+1)]
return list(chain.from_iterable(superset))