我是否需要为 sklearn 逻辑回归编码目标变量

数据挖掘 scikit-学习 逻辑回归
2022-03-15 23:39:05

我正在尝试熟悉 sklearn 库,现在我正在尝试为包含数字和分类值的数据框实现逻辑回归,以预测二进制目标变量。
在阅读一些文档时,我发现应该使用逻辑回归来预测由 0 和 1 表示的二进制变量。
我的目标变量是“YES”和“NO”,我应该将其编码为 0 和 1 以使算法正常工作,还是没有区别?
也许我只是不明白,但有人可以向我证实这一点。

1个回答

字符串标签工作得很好,这里是一个例子:

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
import numpy
X, y = load_iris(return_X_y=True)
y_string = numpy.array(['YES' if label == 1 else 'NO' for label in y])
clf = LogisticRegression(random_state=0, solver='lbfgs', multi_class='multinomial').fit(X, y_string)
y_pred = clf.predict(X[50:100, :])
print(y_pred)

输出:

['NO' 'NO' 'NO' 'YES' 'NO' 'YES' 'NO' 'YES' 'NO' 'NO' 'YES' 'NO' 'YES'
 'NO' 'NO' 'NO' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'YES' 'YES' 'NO' 'NO'
 'YES' 'NO' 'NO' 'YES' 'YES' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO'
 'YES' 'YES' 'NO' 'YES' 'YES' 'YES' 'NO' 'NO' 'NO' 'YES' 'NO']

哟可以替换y_stringy数值示例。