Python之category-encoders:category-encoders库的简介、安装、使用方法之详细攻略

 

 

 

 

目录

category-encoders库的简介

1、支持15种不同编码

category-encoders库的安装

category-encoders库的使用方法

1、一个无监督的例子

2、一个有监督的例子


 

 

 

 

category-encoders库的简介

           一组scikit-learn风格的转换器,用不同的技术将类别变量编码成数字。一组scikit-learn风格的转换器,用不同的技术将分类变量编码成数字。虽然序数编码、单热编码和散列编码在现有scikit-learn版本中具有类似的等价性,但这个库中的变形金刚都有一些有用的特性:

  • 对pandas数据文件作为输入(可选作为输出)的一流支持
  • 可以显式配置数据中的哪些列按名称或索引编码,或推断非数字列,而不管输入类型
  • 可以根据训练集随意删除任何方差很低的列吗
  • 可移植性:培训数据转换器,pickle它,以后重用它,然后得到同样的东西。
  • 完全兼容sklearn管道,输入一个类似数组的数据集,像任何其他转换器

 

1、支持15种不同编码

  1. Backward Difference Coding
  2. BaseN
  3. Binary
  4. CatBoost Encoder
  5. Count Encoder
  6. Generalized Linear Mixed Model Encoder
  7. Hashing
  8. Helmert Coding
  9. James-Stein Encoder
  10. Leave One Out
  11. M-estimate
  12. One Hot
  13. Ordinal
  14. Polynomial Coding
  15. Sum Coding
  16. Target Encoder
  17. Weight of Evidence
  18. Wrappers

 

 

文档http://contrib.scikit-learn.org/category_encoders/

 

category-encoders库的安装

pip install category-encoders

 

 

category-encoders库的使用方法

        有两种类型的编码器:无监督和有监督的。

1、一个无监督的例子

from category_encoders import *
import pandas as pd
from sklearn.datasets import load_boston

# prepare some data
bunch = load_boston()
y = bunch.target
X = pd.DataFrame(bunch.data, columns=bunch.feature_names)

# use binary encoding to encode two categorical features
enc = BinaryEncoder(cols=['CHAS', 'RAD']).fit(X)

# transform the dataset
numeric_dataset = enc.transform(X)

 

 

2、一个有监督的例子

from category_encoders import *
import pandas as pd
from sklearn.datasets import load_boston

# prepare some data
bunch = load_boston()
y_train = bunch.target[0:250]
y_test = bunch.target[250:506]
X_train = pd.DataFrame(bunch.data[0:250], columns=bunch.feature_names)
X_test = pd.DataFrame(bunch.data[250:506], columns=bunch.feature_names)

# use target encoding to encode two categorical features
enc = TargetEncoder(cols=['CHAS', 'RAD'])

# transform the datasets
training_numeric_dataset = enc.fit_transform(X_train, y_train)
testing_numeric_dataset = enc.transform(X_test)