gpt4 book ai didi

python - 分类中的目标变量是否需要数值编码?

转载 作者:太空宇宙 更新时间:2023-11-04 07:29:54 25 4
gpt4 key购买 nike

我正在使用 sklearn 进行文本分类,我所有的特征都是数字,但我的目标变量标签在文本中。我可以理解将特征编码为数字背后的基本原理,但我认为这不适用于目标变量吗?

最佳答案

如果您的目标变量是文本形式,您可以将其转换为数字形式(或者您可以不理会它,请参阅下面我的注释)以便任何 Scikit-learn 算法在 OVA 中选择它(One Versus All) scheme:你的学习算法将尝试猜测每个类与剩余类相比,只有当它们被转换为从 0 到(类数 - 1)的数字代码时。

例如,在这个example从 Scikit-Learn 文档中,您可以找出鸢尾花的类别,因为有三种模型可以评估每个可能的类别:

  • 0 级与 1 级和 2 级的对比
  • 1 级与 0 级和 2 级的对比
  • 第 2 类与第 0 类和第 1 类

当然,类 0、1 和 2 是 Setosa、Versicolor 和 Virginica,但算法需要将它们表示为数字代码,您可以通过探索示例代码的结果来验证:

list(iris.target_names)
['setosa', 'versicolor', 'virginica']

np.unique(Y)
array([0, 1, 2])

NOTE: it is true that Scikit-learn encodes by itself the target labels if they are strings. On Scikit-learn's Github page for logistic regression (https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/linear_model/logistic.py) you can see at rows 1623 and 1624 where the code calls the label encoder and it encodes labels automatically:

# Encode for string labels
label_encoder = LabelEncoder().fit(y)
y = label_encoder.transform(y)

关于python - 分类中的目标变量是否需要数值编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50201315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com