python 将字符串输入矩阵转换为 0-1 二进制输入矩阵,用于逻辑回归,如 R



我正在使用pandas+numpy+scikit-learn用Python做一些逻辑回归。然而,在scikit-learn内置逻辑回归模型中,它不允许字符串输入,但我想做一些类似R的事情,它将str列输入直接转换为几个具有0-1二进制输入的稀疏列。

例如在 R 中,如果我这样做:

n=100
x<-1:n
epsilon<-rnorm(n)
g<-sample(c("A","B","C","D"),n,replace=T)
g<-as.factor(g)
m <- as.data.frame(model.matrix(~g-1))
fit=glm(x~-1+g)

不会有问题,但在 python 中,它会抛出一个错误,因为它不能接受 str 输入。

是否有任何现有方法可以做到这一点?因为我不了解 Cython,我不想在 python 级别重写它......

我希望我在这里足够清楚。有什么帮助吗?

多谢

如果你想

使用scikit-learn而不是patsy/statsmodel,你可以使用OneHotEncoder。该示例使用整数类别,但它也适用于字符串类别。

相关内容

  • 没有找到相关文章

最新更新