3

複数の列 (考えられるリグレッサー) を含む DataFrame が与えられた場合、考えられるすべての列の組み合わせを生成して、それらをさまざまなリグレッションでテストするにはどうすればよいですか? 私は、リグレッサーのすべての可能な組み合わせから最適な回帰モデルを選択しようとしています。

たとえば、私はこれを持っていますDataFrame:

            A   B
1/1/2011    1   4
1/2/2011    2   5
1/3/2011    3   6

そして、私は次のものを生成したい:

            A   B
1/1/2011    1   4
1/2/2011    2   5
1/3/2011    3   6

            A
1/1/2011    1
1/2/2011    2
1/3/2011    3

            B
1/1/2011    4
1/2/2011    5
1/3/2011    6
4

2 に答える 2

5

itertoolsを使用して、列名のパワーセットを生成してみてください。

In [23]: import itertools as iter

In [24]: def pset(lst):
   ....:     comb = (iter.combinations(lst, l) for l in range(len(lst) + 1))
   ....:     return list(iter.chain.from_iterable(comb))
   ....: 


In [25]: pset(lst)
Out[25]: 
[(),
 ('A',),
 ('B',),
 ('C',),
 ('D',),
 ('A', 'B'),
 ('A', 'C'),
 ('A', 'D'),
 ('B', 'C'),
 ('B', 'D'),
 ('C', 'D'),
 ('A', 'B', 'C'),
 ('A', 'B', 'D'),
 ('A', 'C', 'D'),
 ('B', 'C', 'D'),
 ('A', 'B', 'C', 'D')]
于 2012-07-11T16:08:26.623 に答える