Machine learning ValueError:在多个列上使用Onehotencoder时,使用序列设置数组元素

Machine learning ValueError:在多个列上使用Onehotencoder时,使用序列设置数组元素,machine-learning,Machine Learning,我对机器学习相当陌生,我正在使用以下代码对分类数据进行编码以进行预处理: 来自sklearn.preprocessing导入标签编码器,OneHotEncoder 从sklearn.compose导入ColumnTransformer ct=ColumnTransformer([('one'u hot'u encoder',onehotcoder(handle'u unknown='ignore'),[0]),余数='passthrough') X=np.array(ct.fit_变换(X),d

我对机器学习相当陌生,我正在使用以下代码对分类数据进行编码以进行预处理:

来自sklearn.preprocessing导入标签编码器,OneHotEncoder
从sklearn.compose导入ColumnTransformer
ct=ColumnTransformer([('one'u hot'u encoder',onehotcoder(handle'u unknown='ignore'),[0]),余数='passthrough')
X=np.array(ct.fit_变换(X),dtype=np.float)
当我在X中只有一列分类数据时,它就起作用了。 但是,当我有多列分类数据时,我将代码更改为:

ct = ColumnTransformer([('one_hot_encoder', OneHotEncoder(handle_unknown = 'ignore'), [0,1,2,3,4,5,10,14,15])],remainder='passthrough')
但是在调用np.array函数时出现以下错误:

值错误:使用序列设置数组元素

在np.array函数调用中

从我的理解来看,我所需要做的就是指定我正在热编码的列,就像上面的代码行一样……那么为什么一个工作而另一个给出错误呢?我该怎么做才能修好它

另外:如果我移除
dtype=np.float

从np.array函数中,我没有得到一个错误,但是我也没有得到X中返回的任何东西,更不用说我能够回答我自己的问题了

对任何感兴趣的人来说,我所做的就是改变路线

X = np.array(ct.fit_transform(X), dtype=np.float)
致:

代码现在运行得很好

X = ct.fit_transform(X).toarray()