OneHotEncoder 可用于将分类特征的每个元素转化为一个可直接计算的数值,也即特征值数字化,常用于特征工程中的数据预处理。
其本质是One-Hot编码在scikit-learn中的实现。
One-Hot
One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候只有一位有效。
One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值,然后,每个整数值被表示为二进制向量,将整数索引标记为1,其余都标为0。
sklearn 中的 OneHotEncoder
直达官网: sklearn.preprocessing.OneHotEncoder
基本参数:
# Encode categorical integer features as a one-hot numeric array.
OneHotEncoder(n_values=None,
categorical_features=None,
categories=None,
drop=None,
sparse=True,
dtype=np.float64,
handle_unknown='error')
示例:
#-*- coding: utf-8 -*-
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
enc.fit([[0, 0, 3],
[1, 1, 0],
[0, 2, 1],
[1, 0, 2]])
ans = enc.transform([[0, 1,