我想合并两个Instance(s),它们具有相同的classAttribute。 如何合并它们?
example
dataset1.arff
@attribute loc numeric
@attribute ccom numeric
@attribute IsVulnerable {no,yes}
dataset2.arff
@attribute nIncomingCallsUniq numeric
@attribute nOutgoingInternCalls numeric
@attribute IsVulnerable {no,yes}
你可以看到,名为" IsVulnerable"两个实例具有相同的值。 我想要的目标实例如下:
example
target_dataset.arff
@attribute loc numeric
@attribute ccom numeric
@attribute nIncomingCallsUniq numeric
@attribute nOutgoingInternCalls numeric
@attribute IsVulnerable {no,yes}
答案 0 :(得分:0)
public static Instance mergeInstance(Instance a, Instance b)
throws Exception {
int m = 0;
double[] newVals = new double[a.numAttributes() + b.numAttributes() + 1];
for (int j = 0; j < a.numAttributes(); j++, m++) {
newVals[m] = a.value(j);
}
for (int j = 0; j < b.numAttributes(); j++, m++) {
newVals[m] = b.value(j);
}
newVals[m] = a.classValue();
Instance newI = new Instance(1.0, newVals);
return newI;
}
仅供参考,此代码适用于我的项目。对于mergeInstances,只需要为mergeInstance添加一个循环。