Scikit-learn数据预处理分类变量编码之多标签二值化
1 声明
本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。
2 名义变量多标签二值化编码简介
名义变量(特征)是(nominal features)分类变量的一种,变量间没用次序和等级之分。比如性别的男、女;民族的汉族、回族、傣族等。
多标签二值编码(MultiLabelBinarizer)可以将该类型的变量(多标签)以二值的形式表示。比如在输入法皮肤的标签体系这个场景中,某款皮肤可以是暖色的、科技的、梦幻的多个标签。
注:这里主要针对原始分类变量是字符串的情况。
3名义变量多标签二值编码
import numpy as np
import pandas as pd
from sklearn.preprocessing import MultiLabelBinarizer
multilabel_feature = [("black", "dress"),
("red", "jeans"),
("blue", "shoe"),
("black", "jeans"),
("red", "shoe"),
("black", "jeans"),
("blue", "dress")]
one_hot_multilabel = MultiLabelBinarizer()
one_hot_multilabel_data=one_hot_multilabel.fit_transform(multilabel_feature)
print(one_hot_multilabel_data)
print(one_hot_multilabel.classes_)