Package org.fnlp.ml.types.sv

Examples of org.fnlp.ml.types.sv.HashSparseVector


//    System.out.println("Leave-one-out正确率:"+count2*1.0f/total);
    // TODO Auto-generated constructor stub
  }
  public Predict classify(Instance instance, int n){
    VotePredict<Integer> predK=new VotePredict<Integer>(k);
    HashSparseVector sv1 =(HashSparseVector) instance.getData();
    if(fs!=null)
      sv1=fs.select(sv1);
   
    for(int i = 0; i < prototypes.size(); i++){
      Instance curInst = prototypes.get(i);
      HashSparseVector sv2 =(HashSparseVector) curInst.getData();
      if(fs!=null)
        sv2=fs.select(sv2);
      float score;
      try {
        score = sim.calc(sv1, sv2);
View Full Code Here


   
    //构建训练集
    trainset = new InstanceSet(factory);
   
    for(int i=0;i<data.length;i++){
      ISparseVector sv = new HashSparseVector(data[i],true);
      int l = lf.lookupIndex(target[i]);
      Instance inst = new Instance(sv,l);
      trainset.add(inst);
    }
    lf.setStopIncrement(true);
   
    //构建测试集

    System.out.println("Train Number: " + trainset.size());
    System.out.println("Class Number: " + lf.size());

    float c = 1.0f;
    int round = 10;
   
    BaseGenerator featureGen = new BaseGenerator();
    ZeroOneLoss loss = new ZeroOneLoss();
    Inferencer msolver = new MultiLinearMax(featureGen, lf, null,2);

    PATrainer trainer = new PATrainer(msolver, featureGen, loss, round,c, null);
    Linear pclassifier = trainer.train(trainset, null);
    String modelFile = "./tmp/m.gz";
    pclassifier.saveTo(modelFile);
    pclassifier = null;
   
    System.out.println("分类器测试");
    pclassifier = Linear.loadFrom(modelFile);
    float[] tdata = new float[]{1,0,1};
    ISparseVector sv = new HashSparseVector(tdata,true);
    Instance inst = new Instance(sv);
    String lab = pclassifier.getStringLabel(inst);
    System.out.println("分类结果:\t"+lab);
   
View Full Code Here

                int[] fea = template.get(j);
                String eleFea = j + ":" + perFea(i, seq, fea);
                int id = alphabet.lookupIndex(eleFea);
                feaId[j] = id;
            }
            HashSparseVector hsvector = new HashSparseVector();
            hsvector.put(feaId, 1.0f);
            trainInstancelist.add(new TrainInstance(currentString, hsvector));
        }
        return trainInstancelist;
    }
View Full Code Here

        initBaseDist();
    }

    private void initVector() {
        for (int i = 0; i < classOri.size(); i++) {
            HashSparseVector hsvector = new HashSparseVector();
            classCenter.add(hsvector);
            classCount.add(0);
        }
        System.out.println("All cluster centers have been created!");
    }
View Full Code Here

        }
    }

    private void initAddInstance(TrainInstance instance) {
        String key = instance.getKey();
        HashSparseVector vector = instance.getVector();
        ArrayList<Integer> classNum = classPerString.get(key);
        if (classNum == null)
            return;
        for (int n : classNum) {
            int count = classCount.get(n);
            classCount.set(n, count+1);
            HashSparseVector vectorcenter = classCenter.get(n);
            vectorcenter.plus(vector);
        }
    }
View Full Code Here

        }
    }

    private void normalClassCenter() {
        for (int i = 0; i < classOri.size(); i++) {
            HashSparseVector vector = classCenter.get(i);
            int count = classCount.get(i);
            vector.scaleDivide(count);
            classCount.set(i, 1);
        }
    }
View Full Code Here

        }
    }

    protected void initPerClassCenter(int classNum) {
        ArrayList<String> stringlist = classOri.get(classNum);
        HashSparseVector hsvector = new HashSparseVector();
        int divide = 0;
        for (String s : stringlist) {
            ArrayList<HashSparseVector> vectorlist = trainData.get(s);
            if (vectorlist == null)
                continue;
            divide += vectorlist.size();
            for (HashSparseVector vector : vectorlist)
                hsvector.plus(vector);
        }
        hsvector.scaleDivide((float) divide);
        classCenter.add(hsvector);
        classCount.add(1);
    }
View Full Code Here

        updateAverageCenter();
    }

    private void updateAverageCenter() {
        for (int i = 0; i < classCount.size(); i++) {
            HashSparseVector center = classCenter.get(i);
            int count = classCount.get(i);
            center.scaleDivide((float) count);
        }
    }
View Full Code Here

    }

    private void clusterList(ArrayList<TrainInstance> trainData) {
        for (TrainInstance ele : trainData) {
            String key = ele.getKey();
            HashSparseVector vector = ele.getVector();
            if (!classPerString.containsKey(key))
                continue;
            int minid = minClass(key, vector);
            updateCenter(minid, vector);
        }
View Full Code Here

        }
        return classid;
    }

    private float distanceEuclidean(int n, HashSparseVector sv, float baseDistance) {
        HashSparseVector center = classCenter.get(n);
        int count = classCount.get(n);
        float dist = baseDistance / (count * count);
        TIntFloatHashMap data = center.data;
        TIntFloatIterator it = sv.data.iterator();
        while (it.hasNext()) {
View Full Code Here

TOP

Related Classes of org.fnlp.ml.types.sv.HashSparseVector

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.