我有一组标记tags
以及所有可能标记taglist
的有序列表。现在我想将一组标签转换为“多热”编码,即获得一个与taglist
长度相同的列表或元组,其中有一个位于其中的所有标签所在的位置和其他平台中的零。< / p>
目前我做的是直截了当:
multihot = []
for i in range(len(taglist)):
tag = taglist[i]
if tag in tags:
multihot.append(1)
else:
multihot.append(0)
是否可以写一个班轮?
答案 0 :(得分:2)
library(zoo)
df$new_col <- na.locf(df$value, maxgap = 7, na.rm = FALSE)
multihot现在包含True或False条目。在Python中,True的行为与1完全相同,False为0;所以这相当于你的解决方案。
答案 1 :(得分:1)
你可以通过列表理解来达到它,添加条件是否标签在标签中,如果是,则插入1否则为0.
multihot = [1 if tag in tags else 0 for tag in taglist]
答案 2 :(得分:0)
给我的声音就像您正在执行多标签编码一样。 sklearn
可以为您做到这一点: