/** * Generates the classifier. * * @param instances set of instances serving as training data * @throws Exception if the classifier has not been generated successfully */ public void buildClassifier(Instances instances) throws Exception { initializeClassifier(instances); //enumerate through the instances m_wordsPerClass = new double[m_numClasses]; for (int i = 0; i < m_numClasses; i++) { m_wordsPerClass[i] = m_numAttributes - 1; } for (Instance instance : instances) { updateClassifier(instance); } }
/** * Generates the classifier. * * @param instances set of instances serving as training data * @throws Exception if the classifier has not been generated successfully */ public void buildClassifier(Instances instances) throws Exception { initializeClassifier(instances); //enumerate through the instances m_wordsPerClass = new double[m_numClasses]; for (int i = 0; i < m_numClasses; i++) { m_wordsPerClass[i] = m_numAttributes - 1; } for (Instance instance : instances) { updateClassifier(instance); } }
ArffLoader loader = new ArffLoader(); loader.setFile(new File(""));//file is valid Instances structure = loader.getStructure(); structure.setClassIndex(0); // train NaiveBayes NaiveBayesMultinomialUpdateable n = new NaiveBayesMultinomialUpdateable(); FilteredClassifier f = new FilteredClassifier(); StringToWordVector s = new StringToWordVector(); f.setFilter(s); f.setClassifier(n); f.buildClassifier(structure); Instance current; while ((current = loader.getNextInstance(structure)) != null) n.updateClassifier(current); // output generated model System.out.println(n);