当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask_ml.preprocessing.LabelEncoder用法及代码示例


用法:

class dask_ml.preprocessing.LabelEncoder(use_categorical: bool = True)

使用 0 和 n_classes-1 之间的值对标签进行编码。

注意

这与分类数据的scikit-learn 版本不同。当传递一个分类 y 时,此实现将使用分类信息进行标签编码和转换。你会收到不同的答案

  1. 您的类别不是单调递增的

  2. 您有未观察到的类别

指定 use_categorical=False 以恢复 scikit-learn 行为。

参数

use_categorical布尔值,默认为真

y 是具有分类 dtype 的 dask 或 pandas 系列时是否使用分类 dtype 信息。

属性

classes_形状数组 (n_class,)

保存每个类的标签。

dtype_可选的分类类型

对于 Categorical y ,dtype 存储在这里。

例子

LabelEncoder 可用于标准化标签。

>>> from dask_ml import preprocessing
>>> le = preprocessing.LabelEncoder()
>>> le.fit([1, 2, 2, 6])
LabelEncoder()
>>> le.classes_
array([1, 2, 6])
>>> le.transform([1, 1, 2, 6]) 
array([0, 0, 1, 2]...)
>>> le.inverse_transform([0, 0, 1, 2])
array([1, 1, 2, 6])

它还可以用于将非数字标签(只要它们是可散列的和可比较的)转换为数字标签。

>>> 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']

使用 Dask 时,我们强烈建议尽可能使用分类 dask 系列。这避免了对值的(可能昂贵的)扫描,并启用了更快的transform 算法。

>>> import dask.dataframe as dd
>>> import pandas as pd
>>> data = dd.from_pandas(pd.Series(['a', 'a', 'b'], dtype='category'),
...                       npartitions=2)
>>> le.fit_transform(data)
dask.array<values, shape=(nan,), dtype=int8, chunksize=(nan,)>
>>> le.fit_transform(data).compute()
array([0, 0, 1], dtype=int8)

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask_ml.preprocessing.LabelEncoder。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。