¿Cómo preparar interacciones de variables categóricas en scikit-learn?


9

¿Cuál es la mejor manera de preparar interacciones de características categóricas antes de ajustar con scikit-learn?

Con statsmodelspodría decir convenientemente en estilo R smf.ols(formula = 'depvar ~ C(var1)*C(var2)', data=df).fit()(lo mismo en Stata con regress depvar i.var1##i.var2).

¿Puede sklearn.preprocessing.PolynomialFeatures(en v0.15, actualmente dev) usarse con variables categóricas?

Respuestas:


8

De hecho, puede usar Patsy con scikit-learn para obtener los mismos resultados que obtendría con R, o con la notación de fórmula en los modelos de estadísticas. Ver código a continuación:

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)

ahora puede usar cualquier modelo implementado en scikit-learn con las notaciones habituales que tienen X como variables independientes e y como dependiente.


¿Qué pasa si queremos tener un LHS vacío? ( ~var1*var2está perfectamente bien en R para construir la matriz RHS)
MichaelChirico

(debe mencionar dmatrix)
MichaelChirico

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.