gpt4 book ai didi

python - ValueError : Shape mismatch: if categories is an array, 它必须是形状 (n_features,)

转载 作者:行者123 更新时间:2023-12-03 13:50:45 26 4
gpt4 key购买 nike

我创建了一个简单的代码来实现 OneHotEncoder .

from sklearn.preprocessing import OneHotEncoder
X = [[0, 'a'], [0, 'b'], [1, 'a'], [2, 'b']]
onehotencoder = OneHotEncoder(categories=[0])
X = onehotencoder.fit_transform(X).toarray()

我只想使用名为 fit_transform 的方法到 X用于索引 0 ,所以它意味着 [0, 0, 1, 2]就像您在 X 中看到的一样.但它会导致这样的错误:
ValueError: Shape mismatch: if categories is an array, it has to be of shape (n_features,).
任何人都可以解决这个问题?我被困在它上面

最佳答案

您需要使用 ColumnTransformer指定列索引不是 categories范围。

构造函数参数 categories是明确地告诉不同的类别值。例如。您可以提供[0, 1, 2]明确,但 auto将决定它。此外,您可以使用 slice() 对象。

from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer

X = [[0, 'a'], [0, 'b'], [1, 'a'], [2, 'b']]

ct = ColumnTransformer(
[('one_hot_encoder', OneHotEncoder(categories='auto'), [0])], # The column numbers to be transformed (here is [0] but can be [0, 1, 3])
remainder='passthrough' # Leave the rest of the columns untouched
)

X = ct.fit_transform(X)

关于python - ValueError : Shape mismatch: if categories is an array, 它必须是形状 (n_features,),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59525929/

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