gpt4 book ai didi

将字符串编码为数字以便在 scikit-learn 中使用

转载 作者:行者123 更新时间:2023-11-30 08:26:40 34 4
gpt4 key购买 nike

我的数据由 50 列组成,其中大部分是字符串。我有一个必须预测的多类变量。我尝试在 scikit-learn 中使用 LabelEncoder 将特征(而不是类)转换为整数,并将它们作为我正在使用的 RandomForest 模型的输入。我正在使用随机森林进行分类。

现在,当新的测试数据到来(新数据流)时,对于每一列,我如何知道每个字符串的标签是什么,因为现在使用 LabelEncoder 将为我提供一个独立于我之前生成的标签的新标签。难道,我这样做错了?我还应该使用其他什么来实现一致的编码吗?

最佳答案

LabelEncoder 类有两个方法来处理这种区别:fit 和transform。通常,您首先调用 fit 将某些数据映射到一组整数:

>>> le = LabelEncoder()
>>> le.fit(['a', 'e', 'b', 'z'])
>>> le.classes_
array(['a', 'b', 'e', 'z'], dtype='U1')

安装编码器后,您可以将任何数据转换到标签空间,而无需更改现有映射:

>>> le.transform(['a', 'e', 'a', 'z', 'a', 'b'])
[0, 2, 0, 3, 0, 1]
>>> le.transform(['e', 'e', 'e'])
[2, 2, 2]

使用此编码器基本上假设您事先知道所有数据中的所有标签是什么。如果您有稍后可能显示的标签(例如,在在线学习场景中),您需要决定如何处理编码器之外的标签。

关于将字符串编码为数字以便在 scikit-learn 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30869382/

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