如何使用子字符串匹配或正则表达式将字符串类型目标变量编码为数字类型

How to encode String type Target variable into numeric Type using Substring matching or Regular Expression

我正在使用由 13 个场景组成的 CTU-13 数据集来检测僵尸网络。 这里的目标变量Label是一个字符串类型的变量。对该变量进行标签编码,简单地创建大约 52-60 个唯一数值,数字因场景而异。但我观察到如果可以使用子字符串匹配或正则表达式进行标签编码,那么我们最多可以简单地编码 3 个数字。问题将是三元 classification(3-class) 问题。然后绘制ROC,auc分数的确定就足够简单了。
例如,可以完成 3 种不同情况的映射,如 "%background%: 0, %normal%: 1, %botnet%: 2 . 然后,如果像 to-background udp flows 这样的 String 实例,则将其标记为 0,像 to-normal tcp flows 这样的实例将其标记为 1等等。他们是否有任何标准或自定义的编码方式?

最后,我简单地使用下面的代码解决了这个问题。首先,使用字符串包含方法提取三个子字符串。然后简单地对数据帧进行标签编码,得到预期的值。

cat_data.loc[cat_data.Label.str.contains('Normal')] = 'Normal'
cat_data.loc[cat_data.Label.str.contains('Background')] = 'Background'
cat_data.loc[cat_data.Label.str.contains('Botnet')] = 'Botnet' 
target = le.fit_transform(cat_data.Label)