Java 在Weka 3.6.5+中添加实例并对其进行分类;

Java 在Weka 3.6.5+中添加实例并对其进行分类;,java,machine-learning,weka,Java,Machine Learning,Weka,我有一个Train.arff文件,我想向其中添加新实例(比如“2,F,222 1002-5”,然后对最后的属性进行分类。我所有的属性都是名义上的 @attribute age {2,3,4,5,6} @attribute gender {F,M} @attribute zipcode {22222,33333,11111} @attribute race {1002-5,2028-9,2054-5,2076-8,2106-3} @attribute service {H0018,H2034,H0

我有一个Train.arff文件,我想向其中添加新实例(比如“2,F,222 1002-5”,然后对最后的属性进行分类。我所有的属性都是名义上的

@attribute age {2,3,4,5,6}
@attribute gender {F,M}
@attribute zipcode {22222,33333,11111}
@attribute race {1002-5,2028-9,2054-5,2076-8,2106-3}
@attribute service {H0018,H2034,H0004,H0009,H0006}

@data
2,F,22222,1002-5,H0018
  • 装载列车。arff
  • 添加实例

            Instance inst = new Instance(10);
            inst.setValue(trainData.attribute(0), age);
            inst.setValue(trainData.attribute(1), administrativeGenderCode);
            inst.setValue(trainData.attribute(2), zipCode);
            inst.setValue(trainData.attribute(3), race);
            inst.setValue(trainData.attribute(4), "H2034");
    
            // inst.setDataset(trainData);
    
            // add
            trainData.add(inst);
    
  • 建筑分级机

    public String buildAndClassify() {
        //build model
        Logistic model = new Logistic();
        try {
            model.buildClassifier(trainData); <-- fails
    
            Instances labeled = new Instances(trainData);
            double clsLabel = model.classifyInstance(trainData.lastInstance());
            labeled.lastInstance().setClassValue(clsLabel);
    
            System.out.print(labeled.lastInstance().stringValue(7));
    
            return labeled.lastInstance().stringValue(7);
    
        } catch (Exception e) {
            e.printStackTrace();
        }
    
        return "";
    }   
    
    公共字符串buildAndClassify(){
    //构建模型
    逻辑模型=新逻辑模型();
    试一试{
    
    model.buildClassifier(trainData);这很有效!

            Instance inst = new Instance(4); <-- Adjust number of instances you want to add.
    
            inst.setValue(trainData.attribute(0), age);
            inst.setValue(trainData.attribute(1), administrativeGenderCode);
            inst.setValue(trainData.attribute(2), zipCode);
            inst.setValue(trainData.attribute(3), race);
    //      inst.setValue(trainData.attribute(4), "H2034"); <-- Do not add the instance you want to classify.
    
    Instance inst=新实例(4);