sklearn.preprocessing.LabelEncoder():标准化标签,将标签值统一转换成range(标签值个数-1)范围内
简单来说 LabelEncoder 是对不连续的数字或者文本进行编号
例子:
>>> le = preprocessing.LabelEncoder()
>>> le.fit(["paris", "paris", "tokyo", "amsterdam"])
LabelEncoder()
>>> list(le.classes_)
['amsterdam', 'paris', 'tokyo']
>>> le.transform(["tokyo", "tokyo", "paris"])
array([2, 2, 1]...)
>>> list(le.inverse_transform([2, 2, 1]))
['tokyo', 'tokyo', 'paris']
le.fit() 对数据进行编号
le.transform() 输入对应数据的编号
le.inverse_transform() 输入编号,返回数据
运行le.fit()以后,其实就成了一个双向的字典。
内部比较复杂的是.fit()的实现 : 思路是先去重,排序,后从0开始编号。
fit (y) | Fit label encoder |
fit_transform (y) | Fit label encoder and return encoded labels |
get_params ([deep]) | Get parameters for this estimator. |
inverse_transform (y) | Transform labels back to original encoding. |
set_params (**params) | Set the parameters of this estimator. |
transform (y) | Transform labels to normalized encoding. |