为同一实例值处理具有多个分类值的特征

数据挖掘 机器学习 数据集 数据清理 特征提取
2022-02-18 17:23:52

我有以下形式的数据:

表 1
id, feature1, predict
1, xyz,yes
2, abc, yes

table2
id,feature2
1,class1
1,class2
1,class3
2,class2

我可以执行一个多连接并在结果集上进行训练——这是一种方法。但是,如果我宁愿保持结果集的长度与表 1 的长度相等,那么技术是什么?

1个回答

一种可能的方法是执行编码,其中特征 2 的每个级别对应于一个新特征(列)。这样您就可以描述特征 1 和 2 之间的 1:N 关系

这是R中的一个小例子

> table1  <- data.frame(id = c(1,2),  feature1 = c("xyz","abc"), predict = c(T,T))
> table2  <- data.frame(id = c(1,1,1,2), feature2 = c("class1", "class2", "class3", "class2"))
> 
> ## encoding
> table(table2)
   feature2
id  class1 class2 class3
  1      1      1      1
  2      0      1      0

新对象包含idfeature2 的(现在唯一的)和设置。您只需要将结果合并(连接)到table1(与数据库连接基本相同的任务 - 差异:内部、外部或完全取决于您的要求)。