1

私は Java と Weka ツールの初心者です。Java コードで弱学習器として DecisionStump で Logitboost アルゴリズムを使用したいのですが、これがどのように機能するのかわかりません。6 つの機能 (ラベル機能なし) を持つベクトルを作成し、ラベル付けとその割り当ての確率のためにそれを logitboost にフィードします。ラベルは 1 または -1 で、トレーニング/テスト データは arff ファイルにあります。これは私のコードですが、アルゴリズムは常に 0 を返します。ありがとう

double candidate_similarity(ha_nodes ha , WeightMatrix[][] wm , LogitBoost lgb ,ArrayList<Attribute> atts){
       LogitBoost lgb = new LogitBoost();
       lgb.buildClassifier(newdata);//newdata is an arff file with some labeled data
       Evaluation eval = new Evaluation(newdata);
       eval.crossValidateModel(lgb, newdata, 10, new Random(1));
       try {
            feature_vector[0] = IP_sim(Main.a_new.dip, ha.candidate.dip_cand); 
            feature_vector[1] = IP_sim(Main.a_new.sip, ha.candidate.sip_cand); 
            feature_vector[2] = IP_s_d_sim(Main.a_new.sip, ha); 
            feature_vector[3] = Dport_sim(Main.a_new.dport, ha);
            freq_weight(Main.a_new.Atype, ha, freq_avg, weight_avg , wm);
            feature_vector[4] = weight_avg;
            feature_vector[5] = freq_avg;
            double[] values = new double[]{feature_vector[0],feature_vector[1],feature_vector[2],feature_vector[3],feature_vector[4],feature_vector[5]};
            DenseInstance newInst = new DenseInstance(1.0,values);
            Instances dataUnlabeled = new Instances("TestInstances", atts, 0);
            dataUnlabeled.add(newInst);
            dataUnlabeled.setClassIndex(dataUnlabeled.numAttributes() - 1);
            double clslable = lgb.classifyInstance(inst);
        } catch (Exception ex) {
            //Logger.getLogger(Module2.class.getName()).log(Level.SEVERE, null, ex);
        }
        return clslable;}
4

1 に答える 1