我必须对4维数据集(加上class属性)进行可视化处理。为此,我想在整个数据集上运行PCA。由于我不必对数据集进行任何机器学习,因此无需将其拆分为训练和测试。以下是我尝试编写的代码:
PrincipalComponents pc = new PrincipalComponents();
pc.setMaximumAttributeNames(2);
System.out.println(dataset.numAttributes()); // this prints 5
pc.buildEvaluator(dataset); //this row raises the exception
weka.core.Instances datasetR2 = pc.transformedData(dataset);
System.out.println(datasetR2.numAttributes());
命令“ buildEvaluator”引发以下异常:
线程“ main”中的异常weka.core.WekaException: weka.attributeSelection.PrincipalComponents:没有属性!在 weka.core.Capabilities.test(Capabilities.java:1201)在 weka.core.Capabilities.test(Capabilities.java:1138)在 weka.core.Capabilities.testWithFail(Capabilities.java:1468)在 weka.attributeSelection.PrincipalComponents.buildAttributeConstructor(PrincipalComponents.java:525) 在 weka.attributeSelection.PrincipalComponents.buildEvaluator(PrincipalComponents.java:466) 在 clustering.sperimentation.GoldStandardTest.clusterPrint(GoldStandardTest.java:154) 在orchestration.Orchestrator.main(Orchestrator.java:22)
我希望datasetR2应该包含转换为2D数据集的初始数据集。