gpt4 book ai didi

python - 带有 scikit onehotencoder 的向量上的虚拟变量

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:26 26 4
gpt4 key购买 nike

假设我有一个整数向量,其中每个整数对应一个类别:

A = [1, 2, 2, 3, 3, 1, 2, 4, 4, 1]

我知道我有多少类别。该向量是我的 X 数据集的列之一,它将以逻辑回归模型结尾。

是否可以使用 sciki-tlearn 函数 onehotencoder 获得如下内容:

0 0 0 1 (when 1)
0 0 1 0 (when 2)
0 1 0 0 (when 3)
1 0 0 0 (when whatever)

甚至更好

0 0 0
0 0 1
0 1 0
1 0 0

?

当我尝试将这样的向量传递给 onehotencoder 时,我收到此错误:need more than 1 value to unpack

此外:我想如果我有“NULL”记录,我应该首先将它们转换成一个数字:有没有一种快速的方法可以做到这一点,比如 A(find(A=='NULL'))= 123?

感谢您的帮助。弗朗切斯科

最佳答案

OneHotEncoder 输入需要是二维的,而不是一维的(它需要一组样本)。

>>> X = [[1, 2, 2, 3, 3, 1, 2, 4, 4, 1]]

假设您的分类特征都可以采用四个值:

>>> n_values = np.repeat(4, len(X[0]))
>>> n_values
array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4])

然后 OneHotEncoder 工作正常:

>>> oh = OneHotEncoder(n_values=n_values)
>>> Xt = oh.fit_transform(X)
>>> Xt.toarray()
array([[ 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0.,
0., 0., 1., 0., 0., 0., 1., 0., 1., 0., 0., 0., 0.,
1., 0., 0., 0., 0., 0., 1., 0., 0., 0., 1., 1., 0.,
0.]])
>>> Xt.shape
(1, 40)

它为每个输入变量产生了太多的虚拟变量,这有点浪费。我不知道你所说的 NULL 是什么意思,因为我不知道你的数据是什么样的。您可能想为此打开一个单独的问题。

关于python - 带有 scikit onehotencoder 的向量上的虚拟变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634198/

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