首页 > 解决方案 > sklearn One Hot Encoder 没有拟合

问题描述

我有一个我已经知道类别的数据序列。无论如何都可以使用sklearnOneHotEncoder而不适合吗?

具体来说,我已经初始化了编码器:

my_cat = ['a', 'b', 'c']
enc = OneHotEncoder(categories=[my_cat])

但是,我无法使用编码器,除非我使用一些虚拟值对其进行拟合:

enc.fit([['a']])
enc.transform([['a'], ['c']]).toarray()
>>>
[[1 0 0]
 [0 0 1]]

如果我不先安装编码器,

# Missing enc.fit
enc.transform([['a'], ['c']]).toarray()

会出现以下错误,

sklearn.exceptions.NotFittedError: This OneHotEncoder instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.

尽管如此,我已经明确地将类别传递给了编码器。方法抛出此错误check_is_fitted()

我用OneHotEncoder错了吗?还有哪些其他方法可以执行哑映射,或者我应该自己编写?

标签: pythonscikit-learnone-hot-encoding

解决方案


推荐阅读