一个热编码列表列,包括附加置信度十进制数
Posted
技术标签:
【中文标题】一个热编码列表列,包括附加置信度十进制数【英文标题】:One hot encode columns of lists including additional confidence decimal number 【发布时间】:2021-12-06 10:09:09 【问题描述】:我有一张表,我想对其进行一次热编码。我可以使用 pandas
get_dummies
或 sklearn
MultiLabelBinarizer
来做到这一点,如 e.g. this *** post。正常的做法是这样的:
categories a b c e
0 [a, b, c] 0 1 1 1 0
1 [c] ---> 1 0 0 1 0
2 [b, c, e] 2 0 1 1 1
但是,就我而言,我也对我的类别有信心。
categories
0 [a:0.3, b:0.4, c:0.5]
1 [c:0.8]
2 [b:1, c:1, e:0.1]
我想将这些知识整合到我的决策树分类器中。 IE。我想以这种格式获取我的数据:
a b c e
0 0.3 0.4 0.5 0
1 0 0 0.8 0
2 0 1.0 1.0 0.1
我可以先构建一个普通的热编码表,然后通过遍历所有行来更改值。不过,我希望有更简单的方法。
如何对上表进行热编码并结合类别置信度的附加信息?
【问题讨论】:
【参考方案1】:使用字典推导来扁平化字典的值:
df = (pd.DataFrame([k: v for d in x for k, v in d.items() for x in df['categories']])
.fillna(0))
print (df)
a b c e
0 0.3 0.4 0.5 0.0
1 0.0 0.0 0.8 0.0
2 0.0 1.0 1.0 0.1
【讨论】:
以上是关于一个热编码列表列,包括附加置信度十进制数的主要内容,如果未能解决你的问题,请参考以下文章