Como preparar interações de variáveis ​​categóricas no scikit-learn?

9

Qual é a melhor maneira de preparar interações de recursos categóricos antes de se adaptar ao scikit-learn?

Com statsmodelseu poderia dizer convenientemente em estilo R smf.ols(formula = 'depvar ~ C(var1)*C(var2)', data=df).fit()(o mesmo em Stata com regress depvar i.var1##i.var2).

Pode sklearn.preprocessing.PolynomialFeatures(na v0.15, atualmente dev) ser usado com variáveis ​​categóricas?

manobrar
fonte

Respostas:

8

De fato, você pode usar o Patsy com o scikit-learn para obter os mesmos resultados que obteria com R ou com a notação de fórmula nos modelos de estatísticas. Veja o código abaixo:

from patsy import dmatrices

# create dummy variables, and their interactions
y, X = dmatrices('depvar ~ C(var1)*C(var2)', df, return_type="dataframe")
# flatten y into a 1-D array so scikit-learn can understand it
y = np.ravel(y)

agora você pode usar qualquer modelo implementado no scikit-learn com as notações usuais tendo X como variáveis ​​independentes e y como dependente.

famargar
fonte
e se quisermos ter um LHS vazio? ( ~var1*var2É perfeitamente bem em R para a construção da matriz de RHS)
MichaelChirico
(você deve mencionar dmatrix) #
1933 MichaelChirico
8

Use Patsy .

Patsy é uma das minhas bibliotecas favoritas do Python: faz uma coisa, e apenas uma coisa, muito bem.

Cam.Davidson.Pilon
fonte