如何在 scikit-learn 中准备分类变量的交互?

机器算法验证 机器学习 相互作用 Python scikit-学习
2022-03-28 04:29:50

在适合 scikit-learn 之前准备分类特征交互的最佳方法是什么?

statsmodels可以方便地说 R 风格smf.ols(formula = 'depvar ~ C(var1)*C(var2)', data=df).fit()(在 Stata 中与 相同regress depvar i.var1##i.var2)。

(在v0.15sklearn.preprocessing.PolynomialFeatures中,目前是开发人员)可以与分类变量一起使用吗?

2个回答

实际上,您可以将 Patsy 与 scikit-learn 一起使用,以获得与使用 R 或使用统计模型中的公式表示法获得的相同结果。请参见下面的代码:

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)

您现在可以使用在 scikit-learn 中实现的任何模型,使用通常的符号,将 X 作为自变量,将 y 作为因变量。

使用帕西

Patsy 是我最喜欢的 Python 库之一:它只做一件事,而且只做一件事,非常好。