我有以下形式的数据:
表 1
id, feature1, predict
1, xyz,yes
2, abc, yes
table2
id,feature2
1,class1
1,class2
1,class3
2,class2
我可以执行一个多连接并在结果集上进行训练——这是一种方法。但是,如果我宁愿保持结果集的长度与表 1 的长度相等,那么技术是什么?
我有以下形式的数据:
表 1
id, feature1, predict
1, xyz,yes
2, abc, yes
table2
id,feature2
1,class1
1,class2
1,class3
2,class2
我可以执行一个多连接并在结果集上进行训练——这是一种方法。但是,如果我宁愿保持结果集的长度与表 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(与数据库连接基本相同的任务 - 差异:内部、外部或完全取决于您的要求)。