我一直在尝试使用ANN创建一个用于实践目的的DL模型。我有一个假银行的客户数据,其中有两个分类变量,即性别和国家。
我使用LabelEncoder
对两列进行编码,但无法为国家/地区列创建虚拟变量。在时装中有三个国家,即法国,德国和西班牙。
我得到的错误:
值错误:没有足够的值来解压缩(预期为 3,得到 2(
我的代码:
# Encodeing categorical data
# for country column
labelencoder_X_1 = LabelEncoder()
X[:, 1] = labelencoder_X_1.fit_transform(X[:, 1])
# for gender column
labelencoder_X_2 = LabelEncoder()
X[:, 2] = labelencoder_X_2.fit_transform(X[:, 2])
ct = ColumnTransformer(
transformers=[
("dummy_var", # Just a name
OneHotEncoder( # The transformer class
categories=[[1]]) # The column(s) to be applied on.
)
], remainder='passthrough')
X = ct.fit_transform(X).toarray()
X = X[:, 1:]
# print(X)
PS:我在深度学习中使用Pycharm和新手。
提前感谢!
我认为您错误地在OneHotEncoder中给出了列名。它必须为ColumnTransformer
付出
.试试这个!
ct = ColumnTransformer(
transformers=[
("dummy_var", # Just a name
OneHotEncoder(), # The transformer class
[1] # The column(s) to be applied on.
)
], remainder='passthrough')
注意:您不必在OneHotEncoder
之前应用labelEncoder
。您可以直接应用OneHotEncoder
。