pandas - 如何使用索引对多标签表示进行编码?
问题描述
我想编码[[1, 2], [4]]
为
[[0, 1, 1, 0, 0],
[0, 0, 0, 0, 1]]
而sklearn.preprocessing.MultiLabelbinarizer
只给
[[1, 1, 0],
[0, 0, 1]]
任何人都知道如何使用Numpy
或Pandas
或sklearn
内置功能来做到这一点?
解决方案
MultilabelBinarizer 只会知道您发送的内容。当它只看到 3 个不同的类时,它只会分配 3 列。
您需要设置classes
参数以设置您在数据集中期望的类总数(按您希望在列中的顺序):
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer(classes=[0,1,2,3,4])
mlb.fit_transform([[1, 2], [4]])
#Output
array([[0, 1, 1, 0, 0],
[0, 0, 0, 0, 1]])
推荐阅读
- makefile - 如何在隐式生成文件规则中排除一些文件?
- review - Virto Commerce 中的产品评论
- msbuild - 将文件添加到 XYZ.csproj.FileListAbsolute.txt 的正确方法是什么?
- kotlin - 动态创建返回类型
- c# - 通过 geckoFX 填充字段的问题
- asp.net-mvc - 在视图中显示下拉列表
- elasticsearch - 比较有和没有分数计算的查询
- react-native - ReactNative:适用于 Android 和 iOS 的自定义复选框
- regex - 正则表达式替换。井号标签“标签:”分隔符之后的所有单词
- python - 具有多个 groupby 的 pandas pivot 数据框