1

我正在使用 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 级别重新编写它......

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

非常感谢

4

1 回答 1

0

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

于 2013-10-25T17:54:54.810 回答