LabelEncoder
不会"记住"参数。当我适合并转换数据时,请要求参数,我得到的只是{}
。这使得无法在新数据上重新使用编码器。
示例:
from sklearn.preprocessing import LabelEncoder
encode = LabelEncoder()
encode.fit_transform(['one', 'two', 'three'])
print(encode.get_params())
不确定预期格式,但我期望像{['one', 0], ['two', 1], ['three', 2]}
实际结果:{}
我在:
Darwin-16.7.0-x86_64-i386-64bit
Python 3.6.1 |Anaconda 4.4.0 (x86_64)| (default, May 11 2017, 13:04:09)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
NumPy 1.12.1
SciPy 0.19.0
Scikit-Learn 0.18.1
标签编码器将参数存储在类_ 属性中。您可以获得转换这些类并创建字典的编码值。该编码器将与具有相同标签的新数据一起使用,否则会引起 valueerror 。在要编码的标签上使用 Transform 方法,仅此而已。
from sklearn import preprocessing
encode = preprocessing.LabelEncoder()
encode.fit_transform(['one', 'two', 'three'])
keys = encode.classes_
values = encode.transform(encode.classes_)
dictionary = dict(zip(keys, values))
print(dictionary)
输出:{'three': 1, 'two': 2, 'one': 0}