Comment préparer les interactions des variables catégorielles dans scikit-learn?


9

Quelle est la meilleure façon de préparer les interactions des caractéristiques catégorielles avant de les adapter à scikit-learn?

Avec statsmodelsje pourrais facilement dire en style R smf.ols(formula = 'depvar ~ C(var1)*C(var2)', data=df).fit()(même chose avec Stata avec regress depvar i.var1##i.var2).

Peut-on sklearn.preprocessing.PolynomialFeatures(dans la v0.15, actuellement dev) être utilisé avec des variables catégorielles?

Réponses:


8

En effet, vous pouvez utiliser Patsy avec scikit-learn pour obtenir les mêmes résultats que vous obtiendriez avec R, ou avec la notation de formule dans les modèles de statistiques. Voir le code ci-dessous:

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)

vous pouvez désormais utiliser n'importe quel modèle implémenté dans scikit-learn avec les notations habituelles ayant X comme variables indépendantes, et y comme variable dépendante.


que faire si nous voulons avoir un LHS vide? ( ~var1*var2est parfaitement bien dans R pour construire la matrice RHS)
MichaelChirico

(vous devez mentionner dmatrix)
MichaelChirico

8

Utilisez Patsy .

Patsy est l'une de mes bibliothèques Python préférées: elle fait une chose, et une seule, vraiment très bien.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.