Python之category-encoders:category-encoders库的简介、安装、使用方法之详细攻略
目录
category-encoders库的简介
一组scikit-learn风格的转换器,用不同的技术将类别变量编码成数字。一组scikit-learn风格的转换器,用不同的技术将分类变量编码成数字。虽然序数编码、单热编码和散列编码在现有scikit-learn版本中具有类似的等价性,但这个库中的变形金刚都有一些有用的特性:
- 对pandas数据文件作为输入(可选作为输出)的一流支持
- 可以显式配置数据中的哪些列按名称或索引编码,或推断非数字列,而不管输入类型
- 可以根据训练集随意删除任何方差很低的列吗
- 可移植性:培训数据转换器,pickle它,以后重用它,然后得到同样的东西。
- 完全兼容sklearn管道,输入一个类似数组的数据集,像任何其他转换器
1、支持15种不同编码
- Backward Difference Coding
- BaseN
- Binary
- CatBoost Encoder
- Count Encoder
- Generalized Linear Mixed Model Encoder
- Hashing
- Helmert Coding
- James-Stein Encoder
- Leave One Out
- M-estimate
- One Hot
- Ordinal
- Polynomial Coding
- Sum Coding
- Target Encoder
- Weight of Evidence
- 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)