private static svm_problem toSvmProblem(Dataset dataset) { svm_problem problem = new svm_problem(); List<Double> labels = dataset.getLabels(); problem.l = labels.size(); problem.y = new double[labels.size()]; for (int i = 0; i < labels.size(); i++) { problem.y[i] = labels.get(i); } problem.x = new svm_node[labels.size()][]; for (int i = 0; i < dataset.getDatapoints().size(); i++) { problem.x[i] = toSvmNodes(dataset.getDatapoints().get(i)); } return problem; }
svm_problem prob = new svm_problem(); prob.l = n; prob.y = new double[n];
/** * returns the svm_problem. * * @param vx the x values * @param vy the y values * @return the svm_problem object */ protected svm_problem getProblem(svm_node[][] vx, double[] vy) { svm_problem p = new svm_problem(); p.l = vy.length; p.y = vy; p.x = vx; return p; }
protected void load(Vector<svm_node[]> vx, Vector<Double> vy){ int max_index = 0; prob = new svm_problem(); prob.l = vy.size(); prob.x = new svm_node[prob.l][]; for(int i=0;i<prob.l;i++) prob.x[i] = vx.elementAt(i); prob.y = new double[prob.l]; for(int i=0;i<prob.l;i++) prob.y[i] = vy.elementAt(i); if(param.gamma == 0 && max_index > 0) param.gamma = 1.0/max_index; if(param.kernel_type == svm_parameter.PRECOMPUTED) for(int i=0;i<prob.l;i++) { if (prob.x[i][0].index != 0) { System.err.print("Wrong kernel matrix: first column must be 0:sample_serial_number\n"); } if ((int)prob.x[i][0].value <= 0 || (int)prob.x[i][0].value > max_index) { System.err.print("Wrong input format: sample_serial_number out of range\n"); } } }
private static svm_problem encodeProblem(final Dictionary<String> dictionary, final Iterable<LabelledVector> vectors) { final int size = Iterables.size(vectors); final svm_problem problem = new svm_problem(); problem.l = size; problem.x = new svm_node[size][]; problem.y = new double[size]; int index = 0; for (final LabelledVector vector : vectors) { problem.x[index] = encodeVector(dictionary, vector); problem.y[index] = vector.getLabel(); ++index; } return problem; }
private static svm_problem toSvmProblem(Dataset dataset) { svm_problem problem = new svm_problem(); List<Double> labels = dataset.getLabels(); problem.l = labels.size(); problem.y = new double[labels.size()]; for (int i = 0; i < labels.size(); i++) { problem.y[i] = labels.get(i); } problem.x = new svm_node[labels.size()][]; for (int i = 0; i < dataset.getDatapoints().size(); i++) { problem.x[i] = toSvmNodes(dataset.getDatapoints().get(i)); } return problem; }
vx.addElement(x); prob = new svm_problem(); prob.l=vy.size(); prob.y = new double[prob.l];
prob = new svm_problem(); prob.l = vy.size(); prob.x = new svm_node[prob.l][];
prob = new svm_problem(); prob.l = vy.size(); prob.x = new svm_node[prob.l][];
prob = new svm_problem(); prob.l = vy.size(); prob.x = new svm_node[prob.l][];
prob = new svm_problem(); prob.l = vy.size(); prob.x = new svm_node[prob.l][];
private static svm_problem transformDataset(Dataset data) { svm_problem p = new svm_problem(); p.l = data.size(); p.y = new double[data.size()]; p.x = new svm_node[data.size()][]; int tmpIndex = 0; for (int j = 0; j < data.size(); j++) { Instance tmp = data.instance(j); p.y[tmpIndex] = data.classIndex(tmp.classValue()); p.x[tmpIndex] = new svm_node[tmp.keySet().size()]; int i = 0; SortedSet<Integer> tmpSet = tmp.keySet(); for (int index : tmpSet) { p.x[tmpIndex][i] = new svm_node(); p.x[tmpIndex][i].index = index; p.x[tmpIndex][i].value = tmp.value(index); i++; } tmpIndex++; } return p; }
public svm_model trainModel(Dataset dataset) { List<Observation> observations = dataset.getObservations(); svm_problem learningProblem = new svm_problem(); int dataCount = observations.size(); learningProblem.y = new double[dataCount]; learningProblem.l = dataCount; learningProblem.x = new svm_node[dataCount][]; for (int i = 0; i < dataCount; i++) { List<Double> features = observations.get(i).getFeatures(); learningProblem.x[i] = new svm_node[features.size()]; for (int j = 0; j < features.size(); j++) { svm_node node = new svm_node(); node.index = j + 1; node.value = features.get(j); learningProblem.x[i][j] = node; } learningProblem.y[i] = dataset.getClassCode(observations.get(i)); } svm_parameter param = new svm_parameter(); param.probability = 1; param.gamma = 0.5; param.nu = 0.5; param.C = 1; param.svm_type = svm_parameter.C_SVC; param.kernel_type = svm_parameter.LINEAR; param.cache_size = 20000; param.eps = 0.0001; svm_model model = svm.svm_train(learningProblem, param); return model; }
@Override public IClassifier train(List<Tuple> trainingData) { if (para == null) { LOG.warn("Parameter is null. Use the default parameter."); this.para = getDefaultPara(); } labelIndexer = new LabelIndexer(trainingData); svm_problem prob = new svm_problem(); int featSize = trainingData.iterator().next().vector.getVector().length; prob.l = trainingData.size(); prob.y = new double[prob.l]; prob.x = new svm_node[prob.l][featSize]; for (int i = 0; i < trainingData.size(); i++) { Tuple tuple = trainingData.get(i); prob.x[i] = new svm_node[featSize]; for (int j = 0; j < tuple.vector.getVector().length; j++) { svm_node node = new svm_node(); node.index = j; node.value = tuple.vector.getVector()[j]; prob.x[i][j] = node; } prob.y[i] = labelIndexer.getIndex(tuple.label); } model = svm.svm_train(prob, para); return this; }
@Override public SvmModel build(DataSet set){ svm_problem problem=new svm_problem(); int count=set.getCount(); List<String> names=set.getSelectedFeatureNames().stream().
final svm_problem prob = new svm_problem();
protected svm_problem buildDatasetForTraining(List<TrainingElement<BxZoneLabel>> trainingElements) { svm_problem problem = new svm_problem(); problem.l = trainingElements.size(); problem.x = new svm_node[problem.l][trainingElements.get(0).getObservation().size()]; problem.y = new double[trainingElements.size()]; Integer elemIdx = 0; for(TrainingElement<BxZoneLabel> trainingElem : trainingElements) { FeatureVector scaledFV = scaler.scaleFeatureVector(trainingElem.getObservation()); Integer featureIdx = 0; for(Double val: scaledFV.getFeatures()) { svm_node cur = new svm_node(); cur.index = featureIdx; cur.value = val; problem.x[elemIdx][featureIdx] = cur; ++featureIdx; } problem.y[elemIdx] = trainingElem.getLabel().ordinal()*100; System.out.println("?? " + trainingElem.getLabel().ordinal()*100 + " (" + trainingElem.getLabel() + ")"); ++elemIdx; } return problem; }
/** * Returns a svm_problem (the data data model of libsvm) of this training set. * @return a svm_problem (the data data model of libsvm) of this training set. */ public svm_problem toLibsvmProblem(){ svm_problem problem = new svm_problem(); problem.l = this.size(); problem.y = new double[problem.l]; problem.x = new svm_node[problem.l][]; int idx = 0; for(Pair<S,T> entry: this){ problem.y[idx] = entry.getSecond().asDouble(); problem.x[idx] = entry.getFirst().toSvmNode(); idx++; } return problem; }
private svm_problem readProblem(InputStreamReader isr) throws MaltChainedException { final svm_problem problem = new svm_problem(); final svm_parameter param = getLibSvmParameters(); final FeatureList featureList = new FeatureList();
public static void main(String[] args){ svm_parameter parameter=new SvmModelType().parameter; parameter.gamma=0.5; svm_problem problem=new svm_problem(); problem.l=10; problem.y=new double[]{0,0,0,0,0,1,1,1,1,1};